javamanager/javainstaller/javasifplugin/src/javasifplugin.cpp
branchRCL_3
changeset 83 26b2b12093af
parent 60 6c158198356e
--- a/javamanager/javainstaller/javasifplugin/src/javasifplugin.cpp	Wed Sep 15 12:05:25 2010 +0300
+++ b/javamanager/javainstaller/javasifplugin/src/javasifplugin.cpp	Wed Oct 13 14:23:59 2010 +0300
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
 * All rights reserved.
 * This component and the accompanying materials are made available
 * under the terms of "Eclipse Public License v1.0"
@@ -20,92 +20,33 @@
 
 #include <apgcli.h>
 #include <apmstd.h>
-#include <charconv.h>
-#include <data_caging_path_literals.hrh>
 #include <e32cmn.h>
 #include <e32property.h>
-#include <string.h>
-#include <usif/usiferror.h>
+#include <charconv.h>
+#include <data_caging_path_literals.hrh>
 
 #include "comms.h"
+#include "commsmessage.h"
 #include "commsclientendpoint.h"
-#include "commsmessage.h"
-#include "javacommonutils.h"
+#include "javasifplugin.h"
+#include "javauids.h"
+#include "logger.h"
 #include "javaoslayer.h"
 #include "javaprocessconstants.h"
 #include "javasymbianoslayer.h"
-#include "javauids.h"
-#include "logger.h"
-#include "resultsserver.h"
 #include "runtimeexception.h"
 
-#include "javasifplugin.h"
 
-
-using namespace java::installer;
+using namespace Java::Installer;
 using namespace java::util;
 using namespace java::comms;
 
 _LIT(KPrivateDataCage, "\\private\\");
 _LIT(KInboxDataCage, "\\private\\1000484b\\");
-_LIT(KJavaInstallerProcess, "Installer*");
-_LIT(KJavaInstallCopierProcess, "javainstallcopier.exe");
 _LIT(KJavaInstallerDataCage, "\\private\\102033e6\\");
 _LIT(KJavaInstallerTmp, "\\private\\102033E6\\installer\\tmp\\");
 _LIT(KAnyExtension, ".*");
-_LIT(KComponentInfo, " componentinfo");
-_LIT(KCommsResult, " -commsresult=");
-_LIT(KJad, " -jad=");
-_LIT(KJar, " -jar=");
-_LIT(KDoubleQuote, "\"");
-_LIT(KInstall, " install");
-_LIT(KSilent, " -silent");
-_LIT(KUninstall, " uninstall");
-_LIT(KCid, " -cid=");
-_LIT(KDrive, " -drive=");
-_LIT(KYes, "yes");
-_LIT(KNo, "no");
-_LIT(KOcsp, " -ocsp=");
-_LIT(KIgnoreOcspWarnings, " -ignore_ocsp_warnings=");
-_LIT(KUpgrade, " -upgrade=");
-_LIT(KUpgradeData, " -upgrade_data=");
-_LIT(KUntrusted, " -untrusted=");
-_LIT(KOverwrite, " -overwrite=");
-_LIT(KDownload, " -download=");
-_LIT(KIap, " -iap=");
-_LIT(KSnap, " -snap=");
-_LIT(KForceCancel, " -forcecancel");
-_LIT(KBase64, " -base64=");
-_LIT(KUsername, " -username=");
-_LIT(KPassword, " -password=");
-_LIT(KSourceUrl, " -sourceurl=");
-_LIT(KCharSet, " -charset=");
 
-_LIT(KJadMimeType, "text/vnd.sun.j2me.app-descriptor");
-_LIT8(K8JadMimeType, "text/vnd.sun.j2me.app-descriptor");
-
-// Long Java Installer command lines contain max 2 path names (512 chars max) and
-// some options -> 1536 is long enough buffer
-const TInt KLongCmdLineLen = 1536;
-
-// When starting Java Installer for uninstallation the command line is much shorter
-const TInt KShortCmdLineLen = 256;
-
-// Java Installer is executed with same Uid as Java Runtime
-_LIT_SECURE_ID(KJavaInstallerSecureID, KJavaMidpSecureId);
-
-/**
- * This function is called to hide the 'Preparing Installation' dialog.
- */
-LOCAL_C TInt HidePrepInstDialog(TAny* aPlugin)
-{
-    CJavaSifPlugin *pPlugin = (CJavaSifPlugin *)aPlugin;
-    if (NULL != pPlugin)
-    {
-        TRAP_IGNORE(pPlugin->HidePrepInstDialogL());
-    }
-    return KErrNone;
-}
 
 // ============================ MEMBER FUNCTIONS ===============================
 
@@ -120,33 +61,24 @@
 
 CJavaSifPlugin::~CJavaSifPlugin()
 {
-    mRFs.Close();
+    iRFs.Close();
 
-    TInt nHandles = mHandlesToClose.Count();
+    TInt nHandles = iHandlesToClose.Count();
     while (nHandles > 0)
     {
         nHandles--;
-        mHandlesToClose[nHandles].Close();
+        iHandlesToClose[nHandles].Close();
     }
-    mHandlesToClose.Reset();
-
-    delete mResultsServer;
-    mResultsServer = NULL;
-
-    delete mDummyResults;
-    mDummyResults = NULL;
+    iHandlesToClose.Reset();
 
-    delete mDummyInfo;
-    mDummyInfo = NULL;
-
-    delete mPrepInstDialog;
-    mPrepInstDialog = NULL;
+    delete iResultsServer;
+    iResultsServer = NULL;
 
-    if (mWaitToHideDialog)
-    {
-        delete mWaitToHideDialog;
-        mWaitToHideDialog = NULL;
-    }
+    delete iDummyResults;
+    iDummyResults = NULL;
+
+    delete iDummyInfo;
+    iDummyInfo = NULL;
 }
 
 CJavaSifPlugin::CJavaSifPlugin()
@@ -155,12 +87,11 @@
 
 void CJavaSifPlugin::ConstructL()
 {
-    User::LeaveIfError(mRFs.Connect());
-    User::LeaveIfError(mRFs.ShareProtected());
-    mResultsServer = NULL;
-    mDummyResults = COpaqueNamedParams::NewL(); // codescanner::forgottoputptroncleanupstack
-    mDummyInfo = CComponentInfo::NewL();
-    mWaitToHideDialog = NULL;
+    User::LeaveIfError(iRFs.Connect());
+    User::LeaveIfError(iRFs.ShareProtected());
+    iResultsServer = NULL;
+    iDummyResults = COpaqueNamedParams::NewL();
+    iDummyInfo = CComponentInfo::NewL();
 }
 
 void CJavaSifPlugin::GetComponentInfo(
@@ -170,7 +101,7 @@
     TRequestStatus& aStatus)
 {
     RFile fileHandle;
-    TInt err = fileHandle.Open(mRFs, aFileName, EFileShareReadersOnly | EFileRead);
+    TInt err = fileHandle.Open(iRFs, aFileName, EFileShareReadersOnly | EFileRead);
     if (KErrNone != err)
     {
         ELOG1(EJavaInstaller,
@@ -191,37 +122,22 @@
     CComponentInfo& aComponentInfo,
     TRequestStatus& aStatus)
 {
-    if (ExitIfJavaInstallerRunning(*mDummyResults, aStatus))
-    {
-        return;
-    }
-
     RProcess rJavaInstaller;
     TFileName fileName;
-    HBufC* pBufCommandLine = NULL;
-    TRAPD(err, pBufCommandLine = HBufC::NewL(KLongCmdLineLen))
-    if (KErrNone != err)
-    {
-        TRequestStatus *statusPtr(&aStatus);
-        User::RequestComplete(statusPtr, err);
-        return;
-    }
-    std::auto_ptr<HBufC> bufCommandLine(pBufCommandLine);
-    TPtr commandLine = pBufCommandLine->Des();
+    TBuf<1536> commandLine;
 
     // Build command line used to pass all necessary info to Java Installer
     std::auto_ptr<HBufC> installerStarterDll(
         stringToDes(java::runtime::JAVA_INSTALLER_STARTER_DLL));
     commandLine = installerStarterDll->Des();
-    commandLine.Append(KComponentInfo);
+    commandLine.Append(_L(" componentinfo"));
 
     // Ask Java Installer to send component info back
     // as Comms message. 11000 is IPC_ADDRESS_JAVA_SIF_PLUGIN_C Comms endpoint
     // that our ResultsServer will listen to.
-    commandLine.Append(KCommsResult);
-    commandLine.AppendNum(IPC_ADDRESS_JAVA_SIF_PLUGIN_C);
+    commandLine.Append(_L(" -commsresult=11000"));
 
-    err = aFileHandle.FullName(fileName);
+    TInt err = aFileHandle.FullName(fileName);
 
     // Java Installer does not have AllFiles capability.
     // So if the .jad/.jar file is in the private data cage of
@@ -238,30 +154,42 @@
     }
 
     // Check whether the file is .jad or .jar
-    TBool isJad;
-    err = IsJadFile(aFileHandle, isJad);
+    RApaLsSession apaSession;
+    err = apaSession.Connect();
     if (KErrNone != err)
     {
+        ELOG1(EJavaInstaller,
+              "CJavaSifPlugin::GetComponentInfo RApaLsSession Connect error %d", err);
         TRequestStatus *statusPtr(&aStatus);
         User::RequestComplete(statusPtr, err);
         return;
     }
+    TDataType jadFileMimeType(_L8("text/vnd.sun.j2me.app-descriptor"));
+    TBool isJad = EFalse;
+    err = apaSession.RecognizeSpecificData(aFileHandle, jadFileMimeType, isJad);
+    apaSession.Close();
+    if (KErrNone != err)
+    {
+        // Just log the error
+        ELOG1(EJavaInstaller,
+              "CJavaSifPlugin::GetComponentInfo RApaLsSession RecognizeSpecificData error %d",
+              err);
+    }
     if (isJad)
     {
         // Installation should be started from JAD file
-        commandLine.Append(KJad);
+        commandLine.Append(_L(" -jad="));
     }
     else
     {
         // from JAR file
-        commandLine.Append(KJar);
+        commandLine.Append(_L(" -jar="));
     }
-
     // Filename parameter must be surrounded in double quotes to
     // ensure that spaces in filename are passed correctly.
-    commandLine.Append(KDoubleQuote);
+    commandLine.Append(_L("\""));
     commandLine.Append(fileName);
-    commandLine.Append(KDoubleQuote);
+    commandLine.Append(_L("\""));
 
     // Start JavaInstaller
     std::auto_ptr<HBufC> installerProcess(
@@ -269,7 +197,21 @@
     err = rJavaInstaller.Create(installerProcess->Des(), commandLine);
     if (KErrNone == err)
     {
-        err = StartResultsServer(*mDummyResults, aComponentInfo);
+        // Destroy old Comms server if it exists
+        delete iResultsServer;
+        iResultsServer = NULL;
+        // Start new Comms server that receives component info and sets it to
+        // to aComponentInfo.
+        iResultsServer = new ResultsServer(*iDummyResults, aComponentInfo);
+        if (NULL == iResultsServer)
+        {
+            err = KErrNoMemory;
+        }
+        else
+        {
+            // Start the server
+            err = iResultsServer->start();
+        }
         if (KErrNone != err)
         {
             // server cannot be started
@@ -299,16 +241,7 @@
 
     // Do NOT close rJavaInstaller now -> the caller gets notification when the
     // process actually closes.
-    err = mHandlesToClose.Append(rJavaInstaller);
-    if ( err )
-    {
-        rJavaInstaller.Close();
-        ELOG1(EJavaInstaller, "CJavaSifPlugin::GetComponentInfo  mHandles"
-              "ToClose.Append failed with error %d", err);
-        TRequestStatus *statusPtr(&aStatus);
-        User::RequestComplete(statusPtr, err);
-        return;
-    }
+    iHandlesToClose.Append(rJavaInstaller);
 }
 
 void CJavaSifPlugin::Install(
@@ -319,12 +252,11 @@
     TRequestStatus& aStatus)
 {
     RFile fileHandle;
-    TInt err = fileHandle.Open(mRFs, aFileName, EFileShareReadersOnly | EFileRead);
+    TInt err = fileHandle.Open(iRFs, aFileName, EFileShareReadersOnly | EFileRead);
     if (KErrNone != err)
     {
         ELOG1(EJavaInstaller,
               "CJavaSifPlugin::Install Opening file for reading failed with error %d", err);
-        TRAP_IGNORE(aResults.AddIntL(KSifOutParam_ErrCategory, EUnexpectedError));
         TRequestStatus *statusPtr(&aStatus);
         User::RequestComplete(statusPtr, err);
         return;
@@ -341,29 +273,16 @@
     COpaqueNamedParams& aResults,
     TRequestStatus& aStatus)
 {
-    if (ExitIfJavaInstallerRunning(aResults, aStatus))
-    {
-        return;
-    }
-
-    // Create buffer for Java Installer command line
-    HBufC* pBufCommandLine = NULL;
-    TRAPD(err, pBufCommandLine = HBufC::NewL(KLongCmdLineLen))
-    if (KErrNone != err)
-    {
-        TRAP_IGNORE(aResults.AddIntL(KSifOutParam_ErrCategory, ELowMemory));
-        TRequestStatus *statusPtr(&aStatus);
-        User::RequestComplete(statusPtr, err);
-        return;
-    }
-    std::auto_ptr<HBufC> bufCommandLine(pBufCommandLine);
-    TPtr commandLine = pBufCommandLine->Des();
+    RProcess rJavaInstaller;
+    TFileName fileName;
+    // Max two path names and some options -> 1536 is enough
+    TBuf<1536> commandLine;
 
     // Build command line used to pass all necessary info to Java Installer
     std::auto_ptr<HBufC> installerStarterDll(
         stringToDes(java::runtime::JAVA_INSTALLER_STARTER_DLL));
     commandLine = installerStarterDll->Des();
-    commandLine.Append(KInstall);
+    commandLine.Append(_L(" install"));
 
     // Check whether this is silent installation
     TInt silentInstall = 0;
@@ -375,36 +294,175 @@
         {
             ELOG(EJavaInstaller,
                  "CJavaSifPlugin::Install The caller did not have TrustedUI capability");
-            TRAP_IGNORE(aResults.AddIntL(KSifOutParam_ErrCategory, ESecurityError));
             TRequestStatus *statusPtr(&aStatus);
             User::RequestComplete(statusPtr, KErrPermissionDenied);
             return;
         }
 
-        commandLine.Append(KSilent);
+        commandLine.Append(_L(" -silent"));
     }
-    else
+
+    TBool paramFound = EFalse;
+    TInt  intValue = 0;
+    TDesC desValue = KNullDesC;
+
+    // KSifInParam_Drive -> -drive=install_target_drive (A, B, C, ..., Z)
+    TRAP_IGNORE(paramFound = aArguments.GetIntByNameL(KSifInParam_Drive, intValue));
+    if (paramFound)
+    {
+        // Value 0 is 'A:' drive and  value 25 is 'Z:' drive
+        if ((intValue > -1) && (intValue < 26))
+        {
+            commandLine.Append(_L(" -drive="));
+            TChar drive('A');
+            drive += intValue;
+            commandLine.Append(drive);
+        }
+        else
+        {
+            WLOG1(EJavaInstaller,
+                "CJavaSifPlugin::Install Ignoring illegal KSifInParam_Drive param (value %d)",
+                intValue);
+        }
+    }
+
+    // KSifInParam_PerformOCSP Yes/No/AskUser -> -ocsp=yes|no
+    TRAP_IGNORE(paramFound = aArguments.GetIntByNameL(KSifInParam_PerformOCSP, intValue));
+    if (paramFound)
     {
-        // Uncomment this to enable 'preparing installation' dialog.
-        //TRAP(err, CreatePrepInstDialogL());
-        //if (KErrNone != err)
-        //{
-        //    WLOG1(EJavaInstaller,
-        //          "CJavaSifPlugin::Install Creating preparing installation dialog failed, err=%d",
-        //          err);
-        //}
+        if (intValue == 0) // Yes
+        {
+            commandLine.Append(_L(" -ocsp=yes"));
+        }
+        else if (intValue == 1) // No
+        {
+            commandLine.Append(_L(" -ocsp=no"));
+        }
+        // AskUser is not supported
+    }
+
+    // KSifInParam_IgnoreOCSPWarnings Yes/No/AskUser -> -ignore_ocsp_warnings=yes|no
+    TRAP_IGNORE(paramFound = aArguments.GetIntByNameL(KSifInParam_IgnoreOCSPWarnings, intValue));
+    if (paramFound)
+    {
+        if (intValue == 0) // Yes
+        {
+            commandLine.Append(_L(" -ignore_ocsp_warnings=yes"));
+        }
+        else if (intValue == 1) // No
+        {
+            commandLine.Append(_L(" -ignore_ocsp_warnings=no"));
+        }
+        // AskUser is not supported
+    }
+
+    // KSifInParam_AllowUpgrade Yes/No/AskUser -> -upgrade=yes|no
+    TRAP_IGNORE(paramFound = aArguments.GetIntByNameL(KSifInParam_AllowUpgrade, intValue));
+    if (paramFound)
+    {
+        if (intValue == 0) // Yes
+        {
+            commandLine.Append(_L(" -upgrade=yes"));
+        }
+        else if (intValue == 1) // No
+        {
+            commandLine.Append(_L(" -upgrade=no"));
+        }
+        // AskUser is not supported
     }
 
-    BuildInstallCommandLine(commandLine, aArguments);
+    // KSifInParam_AllowUntrusted Yes/No/AskUser -> -untrusted=yes|no
+    TRAP_IGNORE(paramFound = aArguments.GetIntByNameL(KSifInParam_AllowUntrusted, intValue));
+    if (paramFound)
+    {
+        if (intValue == 0) // Yes
+        {
+            commandLine.Append(_L(" -untrusted=yes"));
+        }
+        else if (intValue == 1) // No
+        {
+            commandLine.Append(_L(" -untrusted=no"));
+        }
+        // AskUser is not supported
+    }
+
+    // KSifInParam_AllowOverwrite Yes/No/AskUser -> -overwrite=yes|no
+    TRAP_IGNORE(paramFound = aArguments.GetIntByNameL(KSifInParam_AllowOverwrite, intValue));
+    if (paramFound)
+    {
+        if (intValue == 0) // Yes
+        {
+            commandLine.Append(_L(" -overwrite=yes"));
+        }
+        else if (intValue == 1) // No
+        {
+            commandLine.Append(_L(" -overwrite=no"));
+        }
+        // AskUser is not supported
+    }
+
+    // KSifInParam_AllowDownload Yes/No/AskUser -> -download=yes|no
+    TRAP_IGNORE(paramFound = aArguments.GetIntByNameL(KSifInParam_AllowDownload, intValue));
+    if (paramFound)
+    {
+        if (intValue == 0) // Yes
+        {
+            commandLine.Append(_L(" -download=yes"));
+        }
+        else if (intValue == 1) // No
+        {
+            commandLine.Append(_L(" -download=no"));
+        }
+        // AskUser is not supported
+    }
+
+    // KSifInParam_UserName -> -username=download_username
+    TRAP_IGNORE(desValue = aArguments.StringByNameL(KSifInParam_UserName));
+    if (desValue.Length() > 0)
+    {
+        commandLine.Append(_L(" -username="));
+        commandLine.Append(desValue);
+    }
+
+    // KSifInParam_Password -> -password=download_password
+    TRAP_IGNORE(desValue = aArguments.StringByNameL(KSifInParam_Password));
+    if (desValue.Length() > 0)
+    {
+        commandLine.Append(_L(" -password="));
+        commandLine.Append(desValue);
+    }
+
+    // KSifInParam_SourceUrl -> -sourceurl=original (HTTP) URL of the JAD or JAR file
+    TRAP_IGNORE(desValue = aArguments.StringByNameL(KSifInParam_SourceUrl));
+    if (desValue.Length() > 0)
+    {
+        commandLine.Append(_L(" -sourceurl="));
+        commandLine.Append(desValue);
+    }
+
+    // KSifInParam_IAP -> -iap=IAP_ID (internet access point id)
+    TRAP_IGNORE(paramFound = aArguments.GetIntByNameL(KSifInParam_IAP, intValue));
+    if (paramFound)
+    {
+        commandLine.Append(_L(" -iap="));
+        commandLine.AppendNum(intValue);
+    }
+
+    // KSifInParam_Charset -> -charset=Internet-standard character set name
+    TRAP_IGNORE(desValue = aArguments.StringByNameL(KSifInParam_Charset));
+    if (desValue.Length() > 0)
+    {
+        commandLine.Append(_L(" -charset="));
+        commandLine.Append(desValue);
+    }
+
 
     // Ask Java Installer to send installation results back
     // as Comms message. 11000 is IPC_ADDRESS_JAVA_SIF_PLUGIN_C Comms endpoint
     // that our ResultsServer will listen to.
-    commandLine.Append(KCommsResult);
-    commandLine.AppendNum(IPC_ADDRESS_JAVA_SIF_PLUGIN_C);
+    commandLine.Append(_L(" -commsresult=11000"));
 
-    TFileName fileName;
-    err = aFileHandle.FullName(fileName);
+    TInt err = aFileHandle.FullName(fileName);
 
     // Java Installer does not have AllFiles capability.
     // So if the .jad/.jar file is in the private data cage of
@@ -415,53 +473,74 @@
     TRAP(err, CopyFilesIfNeededL(fileName));
     if (KErrNone != err)
     {
-        TRAP_IGNORE(aResults.AddIntL(KSifOutParam_ErrCategory, EUnexpectedError));
         TRequestStatus *statusPtr(&aStatus);
         User::RequestComplete(statusPtr, err);
         return;
     }
 
     // Check whether the file is .jad or .jar
-    TBool isJad = EFalse;
-    err = IsJadFile(aFileHandle, aArguments, isJad);
+    RApaLsSession apaSession;
+    err = apaSession.Connect();
     if (KErrNone != err)
     {
-        TRAP_IGNORE(aResults.AddIntL(KSifOutParam_ErrCategory, EUnexpectedError));
+        ELOG1(EJavaInstaller,
+              "CJavaSifPlugin::Install RApaLsSession Connect error %d", err);
         TRequestStatus *statusPtr(&aStatus);
         User::RequestComplete(statusPtr, err);
         return;
     }
+    TDataType jadFileMimeType(_L8("text/vnd.sun.j2me.app-descriptor"));
+    TBool isJad = EFalse;
+    err = apaSession.RecognizeSpecificData(aFileHandle, jadFileMimeType, isJad);
+    apaSession.Close();
+    if (KErrNone != err)
+    {
+        ELOG1(EJavaInstaller,
+              "CJavaSifPlugin::Install RApaLsSession RecognizeSpecificData error %d", err);
+    }
     if (isJad)
     {
         // Installation should be started from JAD file
-        commandLine.Append(KJad);
+        commandLine.Append(_L(" -jad="));
     }
     else
     {
         // from JAR file
-        commandLine.Append(KJar);
+        commandLine.Append(_L(" -jar="));
     }
     // Filename parameter must be surrounded in double quotes to
     // ensure that spaces in filename are passed correctly.
-    commandLine.Append(KDoubleQuote);
+    commandLine.Append(_L("\""));
     commandLine.Append(fileName);
-    commandLine.Append(KDoubleQuote);
+    commandLine.Append(_L("\""));
 
     // Start JavaInstaller
     std::auto_ptr<HBufC> installerProcess(
         stringToDes(java::runtime::JAVA_PROCESS));
-    RProcess rJavaInstaller;
     err = rJavaInstaller.Create(installerProcess->Des(), commandLine);
     if (KErrNone == err)
     {
-        err = StartResultsServer(aResults, *mDummyInfo);
+        // Destroy old Comms server if it exists
+        delete iResultsServer;
+        iResultsServer = NULL;
+        // Start new Comms server that receives component ids, sets them
+        // to aResults.
+        iResultsServer = new ResultsServer(aResults, *iDummyInfo);
+        if (NULL == iResultsServer)
+        {
+            err = KErrNoMemory;
+        }
+        else
+        {
+            // Start the server
+            err = iResultsServer->start();
+        }
         if (KErrNone != err)
         {
             // server cannot be started
             rJavaInstaller.Close();
             ELOG1(EJavaInstaller,
                   "CJavaSifPlugin::Install: Cannot start results server, err %d", err);
-            TRAP_IGNORE(aResults.AddIntL(KSifOutParam_ErrCategory, EUnexpectedError));
             TRequestStatus *statusPtr(&aStatus);
             User::RequestComplete(statusPtr, err);
             return;
@@ -476,81 +555,37 @@
         rJavaInstaller.Close();
         ELOG1(EJavaInstaller,
               "CJavaSifPlugin::Install: starting JavaInstaller failed, err=%d", err);
-        TRAP_IGNORE(aResults.AddIntL(KSifOutParam_ErrCategory, EUnexpectedError));
         TRequestStatus *statusPtr(&aStatus);
         User::RequestComplete(statusPtr, err);
         return;
     }
 
-    if (!silentInstall)
-    {
-        TRAP(err, mWaitToHideDialog =
-             CAsyncWaitCallBack::NewL(TCallBack(HidePrepInstDialog, this)));
-        if (KErrNone == err)
-        {
-            // The active object will wait until JavaInstaller process calls Rendezvous.
-            // If JavaInstaller specifies reason code EJavaInstaller, then
-            // the active object will call callback function that will hide the
-            // 'Preparing installation' dialog. If reason code is not EJavaInstaller,
-            // the wait object will automatically wait for the next rendezvous.
-            mWaitToHideDialog->Wait( rJavaInstaller, EJavaInstaller );
-        }
-        else
-        {
-            ELOG1(EJavaInstaller, "CJavaSifPlugin::Install: Creating "
-                  "mWaitToHideDialog failed, err %d", err);
-        }
-    }
     rJavaInstaller.Resume();
 
     // Do NOT close rJavaInstaller now -> the caller gets notification when the
     // process actually closes.
-    err = mHandlesToClose.Append(rJavaInstaller);
-    if ( err )
-    {
-        rJavaInstaller.Close();
-        ELOG1(EJavaInstaller, "CJavaSifPlugin::Install  mHandles"
-              "ToClose.Append failed with error %d", err);
-        TRAP_IGNORE(aResults.AddIntL(KSifOutParam_ErrCategory, ELowMemory));
-        TRequestStatus *statusPtr(&aStatus);
-        User::RequestComplete(statusPtr, err);
-        return;
-    }
-
+    iHandlesToClose.Append(rJavaInstaller);
 }
 
 void CJavaSifPlugin::Uninstall(
     TComponentId aComponentId,
     const TSecurityContext& aSecurityContext,
     const COpaqueNamedParams& aArguments,
-    COpaqueNamedParams& aResults,
+    COpaqueNamedParams& /* aResults */,
     TRequestStatus& aStatus)
 {
-    if (ExitIfJavaInstallerRunning(aResults, aStatus))
-    {
-        return;
-    }
-
-    // Allocate buffer for Java Installer command line
-    HBufC* pBufCommandLine = NULL;
-    TRAPD(err, pBufCommandLine = HBufC::NewL(KShortCmdLineLen))
-    if (KErrNone != err)
-    {
-        TRAP_IGNORE(aResults.AddIntL(KSifOutParam_ErrCategory, ELowMemory));
-        TRequestStatus *statusPtr(&aStatus);
-        User::RequestComplete(statusPtr, err);
-        return;
-    }
-    std::auto_ptr<HBufC> bufCommandLine(pBufCommandLine);
-    TPtr commandLine = pBufCommandLine->Des();
+    RProcess rJavaInstaller;
+    TFileName fileName;
+    // Max one uid and some options -> 256 is enough
+    TBuf<256> commandLine;
 
     // Build command line used to pass all necessary info to Java Installer
     std::auto_ptr<HBufC> installerStarterDll(
         stringToDes(java::runtime::JAVA_INSTALLER_STARTER_DLL));
     commandLine = installerStarterDll->Des();
-    commandLine.Append(KUninstall);
+    commandLine.Append(_L(" uninstall"));
 
-    commandLine.Append(KCid);
+    commandLine.Append(_L(" -cid="));
     commandLine.AppendNum(aComponentId);
 
     // Check whether this is silent uninstallation
@@ -563,35 +598,24 @@
         {
             ELOG(EJavaInstaller,
                  "CJavaSifPlugin::Uninstall The caller did not have TrustedUI capability");
-            TRAP_IGNORE(aResults.AddIntL(KSifOutParam_ErrCategory, ESecurityError));
             TRequestStatus *statusPtr(&aStatus);
             User::RequestComplete(statusPtr, KErrPermissionDenied);
             return;
         }
 
-        commandLine.Append(KSilent);
+        commandLine.Append(_L(" -silent"));
     }
 
+    // No need to start iResultsServer because Uninstall() does not
+    // return anything usefull in aResults. We could return extended
+    // error code there.
+
     // start JavaInstaller
     std::auto_ptr<HBufC> installerProcess(
         stringToDes(java::runtime::JAVA_PROCESS));
-    RProcess rJavaInstaller;
-    err = rJavaInstaller.Create(installerProcess->Des(), commandLine);
+    TInt err = rJavaInstaller.Create(installerProcess->Des(), commandLine);
     if (KErrNone == err)
     {
-        err = StartResultsServer(aResults, *mDummyInfo);
-        if (KErrNone != err)
-        {
-            // server cannot be started
-            rJavaInstaller.Close();
-            ELOG1(EJavaInstaller,
-                  "CJavaSifPlugin::Uninstall: Cannot start results server, err %d", err);
-            TRAP_IGNORE(aResults.AddIntL(KSifOutParam_ErrCategory, EUnexpectedError));
-            TRequestStatus *statusPtr(&aStatus);
-            User::RequestComplete(statusPtr, err);
-            return;
-        }
-
         // the exit status of Java Installer will be passed to
         // the asynch caller through aStatus
         rJavaInstaller.Logon(aStatus);
@@ -603,7 +627,6 @@
         rJavaInstaller.Close();
         ELOG1(EJavaInstaller,
              "CJavaSifPlugin::Uninstall: starting JavaInstaller failed, err=%d", err);
-        TRAP_IGNORE(aResults.AddIntL(KSifOutParam_ErrCategory, EUnexpectedError));
         TRequestStatus *statusPtr(&aStatus);
         User::RequestComplete(statusPtr, err);
         return;
@@ -611,17 +634,7 @@
 
     // Do NOT close rJavaInstaller now -> the caller gets notification when the
     // process actually closes.
-    err = mHandlesToClose.Append(rJavaInstaller);
-    if ( err )
-    {
-        rJavaInstaller.Close();
-        ELOG1(EJavaInstaller, "CJavaSifPlugin::Uninstall  mHandles"
-              "ToClose.Append failed with error %d", err);
-        TRAP_IGNORE(aResults.AddIntL(KSifOutParam_ErrCategory, ELowMemory));
-        TRequestStatus *statusPtr(&aStatus);
-        User::RequestComplete(statusPtr, err);
-        return;
-    }
+    iHandlesToClose.Append(rJavaInstaller);
 }
 
 void CJavaSifPlugin::Activate(
@@ -651,7 +664,7 @@
     // Send cancel message to Java Installer
 
     // Check whether there is anything to cancel
-    if (mHandlesToClose.Count() < 1)
+    if (iHandlesToClose.Count() < 1)
     {
         // No Java Installer process running, do nothing
         WLOG(EJavaInstaller,
@@ -659,47 +672,64 @@
         return;
     }
 
-    CommsMessage message;
-    message.setReceiver(IPC_ADDRESS_JAVA_INSTALLER_SERVER_C);
-    message.setSender(IPC_ADDRESS_JAVA_SIF_PLUGIN_C);
-    message.setMessageId(INSTALLER_CANCEL_MESSAGE_ID);
+    try
+    {
+        CommsMessage message;
+        message.setModuleId(PLUGIN_ID_SAMPLE_C);
+        message.setReceiver(IPC_ADDRESS_JAVA_INSTALLER_SERVER_C);
+        message.setSender(IPC_ADDRESS_JAVA_SIF_PLUGIN_C);
+        message.setMessageId(INSTALLER_CANCEL_MESSAGE_ID);
 
-    CommsMessage replyMessage;
-    int timeout = 10; // 10 seconds  // codescanner::magicnumbers
+        CommsMessage replyMessage;
+        int timeout = 10; // 10 seconds
 
-    CommsClientEndpoint comms;
-    int err = comms.connect(IPC_ADDRESS_JAVA_INSTALLER_SERVER_C);
-    if (KErrNone == err)
-    {
-        err = comms.sendReceive(message, replyMessage, timeout);
+        CommsClientEndpoint comms;
+        int err = comms.connect(IPC_ADDRESS_JAVA_INSTALLER_SERVER_C);
+        if (KErrNone == err)
+        {
+            err = comms.sendReceive(message, replyMessage, timeout);
+        }
+        else
+        {
+            // Cannot connect to Java Installer Comms end point,
+            // for example Java Installer is still starting up or
+            // already exiting
+            WLOG1(EJavaInstaller,
+                "CJavaSifPlugin:CancelOperation: Cannot connect to Java Installer "
+                "Comms end point, err %d", err);
+            return;
+        }
+        if (err != 0)
+        {
+            // Sending message to Java Installer failed.
+            ELOG1(EJavaInstaller,
+                "CJavaSifPlugin:CancelOperation: Cannot send message to Java Installer, err %d",
+                err);
+            // Ignore possible errors in disconnect
+            (void)comms.disconnect();
+            return;
+        }
+
+        // Ignore the cancel result returned in replyMessage
+        // because current SIF API does not return cancel result
+
+        // Ignore possible errors in disconnect
+        (void)comms.disconnect();
     }
-    else
+    catch (ExceptionBase& e)
     {
-        // Cannot connect to Java Installer Comms end point,
-        // for example Java Installer is still starting up or
-        // already exiting
-        WLOG1(EJavaInstaller,
-            "CJavaSifPlugin:CancelOperation: Cannot connect to Java Installer "
-            "Comms end point, err %d", err);
+        ELOG1(EJavaInstaller,
+              "CJavaSifPlugin: Send cancel msg failed: ExceptionBase caught: %s ",
+              e.toString().c_str());
         return;
     }
-    if (err != 0)
+    catch (std::exception& e)
     {
-        // Sending message to Java Installer failed.
         ELOG1(EJavaInstaller,
-            "CJavaSifPlugin:CancelOperation: Cannot send message to Java Installer, err %d",
-            err);
-        // Ignore possible errors in disconnect
-        (void)comms.disconnect();  // codescanner::voidparameter
+              "CJavaSifPlugin: Send cancel msg failed: Exception %s caught", e.what());
         return;
     }
 
-    // Ignore the cancel result returned in replyMessage
-    // because current SIF API does not return cancel result
-
-    // Ignore possible errors in disconnect
-    (void)comms.disconnect();  // codescanner::voidparameter
-
     // It takes some time before Java Installer had really cancelled
     // the operation and exited. Wait for it to happen because this function
     // must return only after the original asynchronous call is completed.
@@ -707,14 +737,14 @@
     // This array contains process handles for all Java Installer processes
     // started from this sif plugin. The last handle is the active one.
     // Check if it is still running
-    if (mHandlesToClose[mHandlesToClose.Count()-1].ExitReason() != 0)
+    if (iHandlesToClose[iHandlesToClose.Count()-1].ExitReason() != 0)
     {
         // Process has already closed
         return;
     }
     // Wait until it exits
-    mHandlesToClose[mHandlesToClose.Count()-1].Logon(status);
-    User::WaitForRequest(status);  // codescanner::userWaitForRequest
+    iHandlesToClose[iHandlesToClose.Count()-1].Logon(status);
+    User::WaitForRequest(status);
     // Ignore the exit status of Java Installer because current SIF API
     // does not return cancel result
 
@@ -725,7 +755,7 @@
 {
     // Check if the file is in the private data cage of some process
     TInt idx = aFileName.FindF(KPrivateDataCage);
-    if ((idx != KErrNotFound) && (idx < 3))   // codescanner::magicnumbers
+    if ((idx != KErrNotFound) && (idx < 3))
     {
         // In case of device Inbox or Java Installer itself do nothing
         if ((aFileName.FindF(KInboxDataCage) != KErrNotFound) ||
@@ -740,37 +770,19 @@
         // (aFileName is <path>\<name>.<ext>, copy <path>\<name>.*
         // to Java Installer tmp dir.)
         TParse fp;
-        mRFs.Parse(aFileName, fp);
+        iRFs.Parse(aFileName, fp);
+
+        CFileMan* fm = CFileMan::NewL(iRFs);
         TFileName filesToCopy = fp.DriveAndPath();
         filesToCopy.Append(fp.Name());
         filesToCopy.Append(KAnyExtension);
-
-        // Use JavaInstallCopier.exe to copy the files.
-        RProcess rJavaInstallCopier;
-        TInt err = rJavaInstallCopier.Create(
-            KJavaInstallCopierProcess, filesToCopy);
-        if (KErrNone == err)
+        TInt err = fm->Copy(filesToCopy, KJavaInstallerTmp, CFileMan::ERecurse);
+        delete fm;
+        if (KErrNone != err)
         {
-            TRequestStatus status;
-            rJavaInstallCopier.Logon(status);
-            rJavaInstallCopier.Resume();
-            User::WaitForRequest(status); // codescanner::userWaitForRequest
-            err = rJavaInstallCopier.ExitReason();
-            rJavaInstallCopier.Close();
-            if (KErrNone != err)
-            {
-                ELOG1(EJavaInstaller,
-                      "CJavaSifPlugin::CopyFilesIfNeededL: copying files "
-                      "to JavaInstaller data cage failed, err=%d", err);
-                User::Leave(err);
-            }
-        }
-        else
-        {
-            rJavaInstallCopier.Close();
             ELOG1(EJavaInstaller,
-                  "CJavaSifPlugin::CopyFilesIfNeededL: starting "
-                  "JavaInstallCopier failed, err=%d", err);
+                  "CJavaSifPlugin::CopyFilesIfNeededL: copying files "
+                  "to Java Installer data cage failed, err=%d", err);
             User::Leave(err);
         }
 
@@ -783,446 +795,4 @@
     return;
 }
 
-
-TInt CJavaSifPlugin::IsJadFile(
-    RFile& aFileHandle,
-    const COpaqueNamedParams& aArguments,
-    TBool& aIsJad)
-{
-    TBool mimeTypeGiven = EFalse;
-
-    TRAP_IGNORE(
-        const TDesC &desValue = aArguments.StringByNameL(KSifInParam_MimeType);
-        if (desValue.Length() > 0)
-        {
-            mimeTypeGiven = ETrue;
-            if (!desValue.Compare(KJadMimeType))
-            {
-                aIsJad = ETrue;
-            }
-            else
-            {
-                aIsJad = EFalse;
-            }
-        }
-    )
-    if (mimeTypeGiven)
-    {
-        return KErrNone;
-    }
-
-    // Mime type was not given in the input arguments, must check the contents
-    // of the file itself
-    return IsJadFile(aFileHandle, aIsJad);
-}
-
-
-TInt CJavaSifPlugin::IsJadFile(
-    RFile& aFileHandle,
-    TBool& aIsJad)
-{
-    RApaLsSession apaSession;
-    TInt err = apaSession.Connect();
-    if (KErrNone != err)
-    {
-        ELOG1(EJavaInstaller,
-            "CJavaSifPlugin::IsJadFile RApaLsSession Connect error %d", err);
-        return err;
-    }
-
-    TDataType jadFileMimeType(K8JadMimeType);
-    err = apaSession.RecognizeSpecificData(aFileHandle, jadFileMimeType, aIsJad);
-    apaSession.Close();
-    if (KErrNone != err)
-    {
-        // Just log the error
-        ELOG1(EJavaInstaller,
-            "CJavaSifPlugin::IsJadFile RApaLsSession RecognizeSpecificData error %d",
-            err);
-        return err;
-    }
-
-    return KErrNone;
-}
-
-
-void CJavaSifPlugin::BuildInstallCommandLine(
-    TPtr& aCommandLine,
-    const COpaqueNamedParams& aArguments)
-{
-    // KSifInParam_Drive -> -drive=install_target_drive (A, B, C, ..., Z)
-    TInt intValue = GetPositiveIntParam(KSifInParam_Drive, aArguments);
-    // Value 0 is 'A:' drive and  value 25 is 'Z:' drive
-    if ((intValue > -1) && (intValue < 26))  // codescanner::magicnumbers
-    {
-        aCommandLine.Append(KDrive);
-        TChar drive('A');
-        drive += intValue;
-        aCommandLine.Append(drive);
-    }
-
-    // KSifInParam_PerformOCSP Yes/No/AskUser -> -ocsp=yes|no
-    intValue = GetPositiveIntParam(KSifInParam_PerformOCSP, aArguments);
-    if (intValue == 0) // Yes
-    {
-        aCommandLine.Append(KOcsp);
-        aCommandLine.Append(KYes);
-    }
-    else if (intValue == 1) // No
-    {
-        aCommandLine.Append(KOcsp);
-        aCommandLine.Append(KNo);
-    }
-    // AskUser is not supported
-
-    // KSifInParam_IgnoreOCSPWarnings Yes/No/AskUser -> -ignore_ocsp_warnings=yes|no
-    intValue = GetPositiveIntParam(KSifInParam_IgnoreOCSPWarnings, aArguments);
-    if (intValue == 0) // Yes
-    {
-        aCommandLine.Append(KIgnoreOcspWarnings);
-        aCommandLine.Append(KYes);
-    }
-    else if (intValue == 1) // No
-    {
-        aCommandLine.Append(KIgnoreOcspWarnings);
-        aCommandLine.Append(KNo);
-    }
-    // AskUser is not supported
-
-    // KSifInParam_AllowUpgrade Yes/No/AskUser -> -upgrade=yes|no
-    intValue = GetPositiveIntParam(KSifInParam_AllowUpgrade, aArguments);
-    if (intValue == 0) // Yes
-    {
-        aCommandLine.Append(KUpgrade);
-        aCommandLine.Append(KYes);
-    }
-    else if (intValue == 1) // No
-    {
-        aCommandLine.Append(KUpgrade);
-        aCommandLine.Append(KNo);
-    }
-    // AskUser is not supported
-
-    // KSifInParam_AllowUpgradeData Yes/No/AskUser -> -upgrade_data=yes|no
-    intValue = GetPositiveIntParam(KSifInParam_AllowUpgradeData, aArguments);
-    if (intValue == 0) // Yes
-    {
-        aCommandLine.Append(KUpgradeData);
-        aCommandLine.Append(KYes);
-    }
-    else if (intValue == 1) // No
-    {
-        aCommandLine.Append(KUpgradeData);
-        aCommandLine.Append(KNo);
-    }
-    // AskUser is not supported
-
-    // KSifInParam_AllowUntrusted Yes/No/AskUser -> -untrusted=yes|no
-    intValue = GetPositiveIntParam(KSifInParam_AllowUntrusted, aArguments);
-    if (intValue == 0) // Yes
-    {
-        aCommandLine.Append(KUntrusted);
-        aCommandLine.Append(KYes);
-    }
-    else if (intValue == 1) // No
-    {
-        aCommandLine.Append(KUntrusted);
-        aCommandLine.Append(KNo);
-    }
-    // AskUser is not supported
-
-    // KSifInParam_AllowOverwrite Yes/No/AskUser -> -overwrite=yes|no
-    intValue = GetPositiveIntParam(KSifInParam_AllowOverwrite, aArguments);
-    if (intValue == 0) // Yes
-    {
-        aCommandLine.Append(KOverwrite);
-        aCommandLine.Append(KYes);
-    }
-    else if (intValue == 1) // No
-    {
-        aCommandLine.Append(KOverwrite);
-        aCommandLine.Append(KNo);
-    }
-    // AskUser is not supported
-
-    // KSifInParam_AllowDownload Yes/No/AskUser -> -download=yes|no
-    intValue = GetPositiveIntParam(KSifInParam_AllowDownload, aArguments);
-    if (intValue == 0) // Yes
-    {
-        aCommandLine.Append(KDownload);
-        aCommandLine.Append(KYes);
-    }
-    else if (intValue == 1) // No
-    {
-        aCommandLine.Append(KDownload);
-        aCommandLine.Append(KNo);
-    }
-    // AskUser is not supported
-
-    // KSifInParam_IAP -> -iap=IAP_ID (internet access point id)
-    intValue = GetPositiveIntParam(KSifInParam_IAP, aArguments);
-    if (intValue > -1)
-    {
-        // IAP ids are always positive
-        aCommandLine.Append(KIap);
-        aCommandLine.AppendNum(intValue);
-    }
-
-    // KSifInParam_SNAP -> -snap=SNAP_ID (service network access point id)
-    intValue = GetPositiveIntParam(KSifInParam_SNAP, aArguments);
-    if (intValue > -1)
-    {
-        // SNAP ids are always positive
-        aCommandLine.Append(KSnap);
-        aCommandLine.AppendNum(intValue);
-    }
-
-    // When this param is given, Java Installer will cancel installation
-    // before committing anything. This option is for debugging purposes only.
-    // KForceCancel -> -forcecancel
-    // The value of parameter is ignored
-    TRAP_IGNORE(
-        const TDesC &desValue = aArguments.StringByNameL(KForceCancel);
-        if (desValue.Length() > 0)
-        {
-            aCommandLine.Append(KForceCancel);
-        }
-    )
-
-    std::wstring base64EncodedArgs;
-    // KSifInParam_UserName -> -username=download_username
-    TRAP_IGNORE(
-        const TDesC &desValue = aArguments.StringByNameL(KSifInParam_UserName);
-        if (desValue.Length() > 0)
-        {
-            try
-            {
-                std::wstring value((wchar_t *)(desValue.Ptr()), desValue.Length());
-                std::wstring encodedValue = JavaCommonUtils::wbase64encode(value);
-                aCommandLine.Append(KUsername);
-                aCommandLine.Append(
-                    (const unsigned short *)encodedValue.c_str(), (int)encodedValue.length());
-                base64EncodedArgs.append(L"username,");
-            }
-            catch (std::exception& e)
-            {
-                ELOG1(EJavaInstaller,
-                    "CJavaSifPlugin::BuildInstallCommandLine Base64 encoding user "
-                    "name failed, err %s", e.what());
-            }
-        }
-    )
-
-    // KSifInParam_Password -> -password=download_password
-    TRAP_IGNORE(
-        const TDesC &desValue = aArguments.StringByNameL(KSifInParam_Password);
-        if (desValue.Length() > 0)
-        {
-            try
-            {
-                std::wstring value((wchar_t *)(desValue.Ptr()), desValue.Length());
-                std::wstring encodedValue = JavaCommonUtils::wbase64encode(value);
-                aCommandLine.Append(KPassword);
-                aCommandLine.Append(
-                    (const unsigned short *)encodedValue.c_str(), (int)encodedValue.length());
-                base64EncodedArgs.append(L"password,");
-            }
-            catch (std::exception& e)
-            {
-                ELOG1(EJavaInstaller,
-                    "CJavaSifPlugin::BuildInstallCommandLine Base64 encoding password "
-                    "failed, err %s", e.what());
-            }
-        }
-    )
-
-    // KSifInParam_SourceUrl -> -sourceurl=original (HTTP) URL of the JAD or JAR file
-    TRAP_IGNORE(
-        const TDesC &desValue = aArguments.StringByNameL(KSifInParam_SourceUrl);
-        if (desValue.Length() > 0)
-        {
-            try
-            {
-                std::wstring value((wchar_t *)(desValue.Ptr()), desValue.Length());
-                std::wstring encodedValue = JavaCommonUtils::wbase64encode(value);
-                aCommandLine.Append(KSourceUrl);
-                aCommandLine.Append(
-                    (const unsigned short *)encodedValue.c_str(), (int)encodedValue.length());
-                base64EncodedArgs.append(L"sourceurl,");
-            }
-            catch (std::exception& e)
-            {
-                ELOG1(EJavaInstaller,
-                    "CJavaSifPlugin::BuildInstallCommandLine Base64 encoding source "
-                    "url failed, err %s", e.what());
-            }
-        }
-    )
-
-    // KSifInParam_Charset -> -charset=Internet-standard character set name
-    TRAP_IGNORE(
-        const TDesC &desValue = aArguments.StringByNameL(KSifInParam_Charset);
-        if (desValue.Length() > 0)
-        {
-            try
-            {
-                std::wstring value((wchar_t *)(desValue.Ptr()), desValue.Length());
-                std::wstring encodedValue = JavaCommonUtils::wbase64encode(value);
-                aCommandLine.Append(KCharSet);
-                aCommandLine.Append(
-                    (const unsigned short *)encodedValue.c_str(), (int)encodedValue.length());
-                base64EncodedArgs.append(L"charset,");
-            }
-            catch (std::exception& e)
-            {
-                ELOG1(EJavaInstaller,
-                    "CJavaSifPlugin::BuildInstallCommandLine Base64 encoding charset "
-                    "failed, err %s", e.what());
-            }
-        }
-    )
-
-    if (base64EncodedArgs.length() > 0)
-    {
-        // Tell Java Installer which arguments have been Base64 encoded
-        aCommandLine.Append(KBase64);
-        aCommandLine.Append(
-            (const unsigned short *)base64EncodedArgs.c_str(), (int)base64EncodedArgs.length());
-    }
-
-    return;
-}
-
-TInt CJavaSifPlugin::GetPositiveIntParam(
-        const TDesC& aName,
-        const COpaqueNamedParams& aArguments)
-{
-    // Assume that the value will not be found
-    TInt intValue = -1;
-
-    // If the value can be read, intValue will be set, otherwise this function
-    // returns -1
-    TRAP_IGNORE((void)aArguments.GetIntByNameL(aName, intValue));  // codescanner::voidparameter
-
-    return intValue;
-}
-
-
-TInt CJavaSifPlugin::StartResultsServer(
-    COpaqueNamedParams& aResults,
-    CComponentInfo& aComponentInfo)
-{
-    // Destroy old Comms server if it exists
-    delete mResultsServer;
-    mResultsServer = NULL;
-
-    // Start new Comms server
-    mResultsServer = new ResultsServer(aResults, aComponentInfo);  // codescanner::nonleavenew
-    if (NULL == mResultsServer)
-    {
-        return KErrNoMemory;
-    }
-    else
-    {
-        // Start the server
-        return mResultsServer->start();
-    }
-}
-
-
-TBool CJavaSifPlugin::ExitIfJavaInstallerRunning(
-    COpaqueNamedParams& aResults,
-    TRequestStatus& aStatus)
-{
-    // If Java Installer is already running, set error category EInstallerBusy etc
-    // to aResults and return
-
-    TInt err(KErrNone);
-    RProcess proc;
-    TFindProcess finder(KJavaInstallerProcess);
-    TFullName procName;
-
-    // Java Installer process SID is 0x102033E6 and name is "Installer"
-    while (finder.Next(procName) == KErrNone)
-    {
-        if (proc.Open(finder) != KErrNone)
-        {
-            continue;
-        }
-        if (proc.SecureId() == KJavaInstallerSecureID)
-        {
-            if (proc.ExitType() == EExitPending)
-            {
-                // Java Installer process is already running
-                proc.Close();
-
-                // return error information
-                TRAP(err, aResults.AddIntL(KSifOutParam_ErrCategory, EInstallerBusy));
-                if (KErrNone != err)
-                {
-                    ELOG1(EJavaInstaller,
-                        "CJavaSifPlugin::ExitIfJavaInstallerRunning aResults.AddIntL "
-                        "ErrCategory err %d", err);
-                }
-
-                TRAP(err, aResults.AddIntL(KSifOutParam_ErrCode, KErrInUse));
-                if (KErrNone != err)
-                {
-                    ELOG1(EJavaInstaller,
-                        "CJavaSifPlugin::ExitIfJavaInstallerRunning aResults.AddIntL "
-                        "ErrCode err %d", err);
-                }
-
-                TRAP(err, aResults.AddIntL(KSifOutParam_ExtendedErrCode, 0));
-                if (KErrNone != err)
-                {
-                    ELOG1(EJavaInstaller,
-                        "CJavaSifPlugin::ExitIfJavaInstallerRunning aResults.AddIntL "
-                        "ExtendedErrCode err %d", err);
-                }
-
-                // TODO: return also localized error message from usif
-                // common localization file after the localized strings are available
-
-                TRequestStatus *statusPtr(&aStatus);
-                User::RequestComplete(statusPtr, KErrInUse);
-                return ETrue;
-            }
-       }
-       proc.Close();
-    }
-
-    return EFalse;
-}
-
-/**
- * Creates 'preparing installation' dialog.
- */
-void CJavaSifPlugin::CreatePrepInstDialogL()
-{
-    ILOG(EJavaInstaller, "CJavaSifPlugin::CreatePrepInstDialogL creating dialog");
-    mPrepInstDialog = CHbDeviceNotificationDialogSymbian::NewL();
-    _LIT(KPrepInstText, "Preparing installation...");
-    mPrepInstDialog->SetTitleL(KPrepInstText);
-    mPrepInstDialog->SetTimeout(20*1000); // ms
-    mPrepInstDialog->ShowL();
-    ILOG(EJavaInstaller, "CJavaSifPlugin::CreatePrepInstDialogL dialog created");
-}
-
-void CJavaSifPlugin::HidePrepInstDialogL()
-{
-    ILOG(EJavaInstaller, "CJavaSifPlugin::HidePrepInstDialogL hiding dialog");
-    // Stop further timed calls
-    if (mWaitToHideDialog)
-    {
-        mWaitToHideDialog->Cancel();
-    }
-    // Close wait dialog.
-    if (mPrepInstDialog)
-    {
-        mPrepInstDialog->Close();
-    }
-    ILOG(EJavaInstaller, "CJavaSifPlugin::HidePrepInstDialogL dialog hidden");
-}
-
 //  End of File