javamanager/javainstaller/javasifplugin/src/javasifplugin.cpp
author hgs
Mon, 04 Oct 2010 11:29:25 +0300
changeset 78 71ad690e91f5
parent 50 023eef975703
child 80 d6dafc5d983f
permissions -rw-r--r--
v2.2.17_1
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
21
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
     1
/*
49
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
     2
* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
21
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
     3
* All rights reserved.
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
     4
* This component and the accompanying materials are made available
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
     5
* under the terms of "Eclipse Public License v1.0"
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
     6
* which accompanies this distribution, and is available
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
     7
* at the URL "http://www.eclipse.org/legal/epl-v10.html".
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
     8
*
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
     9
* Initial Contributors:
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    10
* Nokia Corporation - initial contribution.
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    11
*
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    12
* Contributors:
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    13
*
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    14
* Description:  This file contains the implementation of CJavaSifPlugin
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    15
*               class member functions. ECOM Plugin for USIF to handle
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    16
*               install, uninstall, get component info requests.
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    17
*
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    18
*/
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    19
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    20
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    21
#include <apgcli.h>
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    22
#include <apmstd.h>
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    23
#include <charconv.h>
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    24
#include <data_caging_path_literals.hrh>
49
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
    25
#include <e32cmn.h>
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
    26
#include <e32property.h>
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
    27
#include <string.h>
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
    28
#include <usif/usiferror.h>
21
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    29
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    30
#include "comms.h"
49
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
    31
#include "commsclientendpoint.h"
21
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    32
#include "commsmessage.h"
49
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
    33
#include "javacommonutils.h"
21
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    34
#include "javaoslayer.h"
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    35
#include "javaprocessconstants.h"
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    36
#include "javasymbianoslayer.h"
49
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
    37
#include "javauids.h"
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
    38
#include "logger.h"
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
    39
#include "resultsserver.h"
21
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    40
#include "runtimeexception.h"
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    41
49
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
    42
#include "javasifplugin.h"
21
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    43
49
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
    44
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
    45
using namespace java::installer;
21
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    46
using namespace java::util;
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    47
using namespace java::comms;
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    48
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    49
_LIT(KPrivateDataCage, "\\private\\");
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    50
_LIT(KInboxDataCage, "\\private\\1000484b\\");
49
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
    51
_LIT(KJavaInstallerProcess, "Installer*");
50
023eef975703 v2.2.4_1
hgs
parents: 49
diff changeset
    52
_LIT(KJavaInstallCopierProcess, "javainstallcopier.exe");
21
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    53
_LIT(KJavaInstallerDataCage, "\\private\\102033e6\\");
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    54
_LIT(KJavaInstallerTmp, "\\private\\102033E6\\installer\\tmp\\");
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    55
_LIT(KAnyExtension, ".*");
49
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
    56
_LIT(KComponentInfo, " componentinfo");
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
    57
_LIT(KCommsResult, " -commsresult=");
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
    58
_LIT(KJad, " -jad=");
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
    59
_LIT(KJar, " -jar=");
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
    60
_LIT(KDoubleQuote, "\"");
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
    61
_LIT(KInstall, " install");
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
    62
_LIT(KSilent, " -silent");
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
    63
_LIT(KUninstall, " uninstall");
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
    64
_LIT(KCid, " -cid=");
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
    65
_LIT(KDrive, " -drive=");
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
    66
_LIT(KYes, "yes");
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
    67
_LIT(KNo, "no");
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
    68
_LIT(KOcsp, " -ocsp=");
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
    69
_LIT(KIgnoreOcspWarnings, " -ignore_ocsp_warnings=");
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
    70
_LIT(KUpgrade, " -upgrade=");
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
    71
_LIT(KUpgradeData, " -upgrade_data=");
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
    72
_LIT(KUntrusted, " -untrusted=");
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
    73
_LIT(KOverwrite, " -overwrite=");
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
    74
_LIT(KDownload, " -download=");
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
    75
_LIT(KIap, " -iap=");
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
    76
_LIT(KSnap, " -snap=");
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
    77
_LIT(KForceCancel, " -forcecancel");
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
    78
_LIT(KBase64, " -base64=");
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
    79
_LIT(KUsername, " -username=");
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
    80
_LIT(KPassword, " -password=");
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
    81
_LIT(KSourceUrl, " -sourceurl=");
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
    82
_LIT(KCharSet, " -charset=");
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
    83
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
    84
_LIT(KJadMimeType, "text/vnd.sun.j2me.app-descriptor");
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
    85
_LIT8(K8JadMimeType, "text/vnd.sun.j2me.app-descriptor");
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
    86
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
    87
// Long Java Installer command lines contain max 2 path names (512 chars max) and
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
    88
// some options -> 1536 is long enough buffer
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
    89
const TInt KLongCmdLineLen = 1536;
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
    90
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
    91
// When starting Java Installer for uninstallation the command line is much shorter
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
    92
const TInt KShortCmdLineLen = 256;
21
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    93
35
85266cc22c7f Revision: v2.2.1
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 21
diff changeset
    94
// Java Installer is executed with same Uid as Java Runtime
85266cc22c7f Revision: v2.2.1
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 21
diff changeset
    95
_LIT_SECURE_ID(KJavaInstallerSecureID, KJavaMidpSecureId);
85266cc22c7f Revision: v2.2.1
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 21
diff changeset
    96
50
023eef975703 v2.2.4_1
hgs
parents: 49
diff changeset
    97
/**
023eef975703 v2.2.4_1
hgs
parents: 49
diff changeset
    98
 * This function is called to hide the 'Preparing Installation' dialog.
023eef975703 v2.2.4_1
hgs
parents: 49
diff changeset
    99
 */
023eef975703 v2.2.4_1
hgs
parents: 49
diff changeset
   100
LOCAL_C TInt HidePrepInstDialog(TAny* aPlugin)
023eef975703 v2.2.4_1
hgs
parents: 49
diff changeset
   101
{
023eef975703 v2.2.4_1
hgs
parents: 49
diff changeset
   102
    CJavaSifPlugin *pPlugin = (CJavaSifPlugin *)aPlugin;
023eef975703 v2.2.4_1
hgs
parents: 49
diff changeset
   103
    if (NULL != pPlugin)
023eef975703 v2.2.4_1
hgs
parents: 49
diff changeset
   104
    {
023eef975703 v2.2.4_1
hgs
parents: 49
diff changeset
   105
        TRAP_IGNORE(pPlugin->HidePrepInstDialogL());
023eef975703 v2.2.4_1
hgs
parents: 49
diff changeset
   106
    }
023eef975703 v2.2.4_1
hgs
parents: 49
diff changeset
   107
    return KErrNone;
023eef975703 v2.2.4_1
hgs
parents: 49
diff changeset
   108
}
21
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   109
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   110
// ============================ MEMBER FUNCTIONS ===============================
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   111
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   112
CJavaSifPlugin* CJavaSifPlugin::NewL()
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   113
{
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   114
    CJavaSifPlugin* self = new(ELeave) CJavaSifPlugin();
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   115
    CleanupStack::PushL(self);
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   116
    self->ConstructL();
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   117
    CleanupStack::Pop(self);
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   118
    return self;
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   119
}
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   120
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   121
CJavaSifPlugin::~CJavaSifPlugin()
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   122
{
49
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
   123
    mRFs.Close();
21
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   124
49
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
   125
    TInt nHandles = mHandlesToClose.Count();
21
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   126
    while (nHandles > 0)
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   127
    {
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   128
        nHandles--;
49
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
   129
        mHandlesToClose[nHandles].Close();
21
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   130
    }
49
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
   131
    mHandlesToClose.Reset();
21
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   132
49
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
   133
    delete mResultsServer;
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
   134
    mResultsServer = NULL;
21
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   135
49
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
   136
    delete mDummyResults;
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
   137
    mDummyResults = NULL;
21
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   138
49
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
   139
    delete mDummyInfo;
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
   140
    mDummyInfo = NULL;
50
023eef975703 v2.2.4_1
hgs
parents: 49
diff changeset
   141
023eef975703 v2.2.4_1
hgs
parents: 49
diff changeset
   142
    delete mPrepInstDialog;
023eef975703 v2.2.4_1
hgs
parents: 49
diff changeset
   143
    mPrepInstDialog = NULL;
023eef975703 v2.2.4_1
hgs
parents: 49
diff changeset
   144
023eef975703 v2.2.4_1
hgs
parents: 49
diff changeset
   145
    if (mWaitToHideDialog)
023eef975703 v2.2.4_1
hgs
parents: 49
diff changeset
   146
    {
023eef975703 v2.2.4_1
hgs
parents: 49
diff changeset
   147
        delete mWaitToHideDialog;
023eef975703 v2.2.4_1
hgs
parents: 49
diff changeset
   148
        mWaitToHideDialog = NULL;
023eef975703 v2.2.4_1
hgs
parents: 49
diff changeset
   149
    }
21
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   150
}
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   151
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   152
CJavaSifPlugin::CJavaSifPlugin()
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   153
{
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   154
}
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   155
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   156
void CJavaSifPlugin::ConstructL()
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   157
{
49
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
   158
    User::LeaveIfError(mRFs.Connect());
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
   159
    User::LeaveIfError(mRFs.ShareProtected());
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
   160
    mResultsServer = NULL;
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
   161
    mDummyResults = COpaqueNamedParams::NewL(); // codescanner::forgottoputptroncleanupstack
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
   162
    mDummyInfo = CComponentInfo::NewL();
50
023eef975703 v2.2.4_1
hgs
parents: 49
diff changeset
   163
    mWaitToHideDialog = NULL;
21
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   164
}
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   165
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   166
void CJavaSifPlugin::GetComponentInfo(
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   167
    const TDesC& aFileName,
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   168
    const TSecurityContext& aSecurityContext,
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   169
    CComponentInfo& aComponentInfo,
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   170
    TRequestStatus& aStatus)
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   171
{
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   172
    RFile fileHandle;
49
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
   173
    TInt err = fileHandle.Open(mRFs, aFileName, EFileShareReadersOnly | EFileRead);
21
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   174
    if (KErrNone != err)
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   175
    {
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   176
        ELOG1(EJavaInstaller,
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   177
              "CJavaSifPlugin::GetComponentInfo Opening file for reading failed with error %d",
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   178
              err);
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   179
        TRequestStatus *statusPtr(&aStatus);
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   180
        User::RequestComplete(statusPtr, err);
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   181
        return;
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   182
    }
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   183
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   184
    GetComponentInfo(fileHandle, aSecurityContext, aComponentInfo, aStatus);
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   185
    fileHandle.Close();
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   186
}
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   187
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   188
void CJavaSifPlugin::GetComponentInfo(
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   189
    RFile& aFileHandle,
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   190
    const TSecurityContext& /* aSecurityContext */,
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   191
    CComponentInfo& aComponentInfo,
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   192
    TRequestStatus& aStatus)
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   193
{
49
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
   194
    if (ExitIfJavaInstallerRunning(*mDummyResults, aStatus))
35
85266cc22c7f Revision: v2.2.1
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 21
diff changeset
   195
    {
85266cc22c7f Revision: v2.2.1
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 21
diff changeset
   196
        return;
85266cc22c7f Revision: v2.2.1
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 21
diff changeset
   197
    }
85266cc22c7f Revision: v2.2.1
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 21
diff changeset
   198
21
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   199
    RProcess rJavaInstaller;
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   200
    TFileName fileName;
49
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
   201
    HBufC* pBufCommandLine = NULL;
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
   202
    TRAPD(err, pBufCommandLine = HBufC::NewL(KLongCmdLineLen))
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
   203
    if (KErrNone != err)
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
   204
    {
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
   205
        TRequestStatus *statusPtr(&aStatus);
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
   206
        User::RequestComplete(statusPtr, err);
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
   207
        return;
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
   208
    }
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
   209
    std::auto_ptr<HBufC> bufCommandLine(pBufCommandLine);
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
   210
    TPtr commandLine = pBufCommandLine->Des();
21
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   211
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   212
    // Build command line used to pass all necessary info to Java Installer
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   213
    std::auto_ptr<HBufC> installerStarterDll(
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   214
        stringToDes(java::runtime::JAVA_INSTALLER_STARTER_DLL));
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   215
    commandLine = installerStarterDll->Des();
49
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
   216
    commandLine.Append(KComponentInfo);
21
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   217
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   218
    // Ask Java Installer to send component info back
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   219
    // as Comms message. 11000 is IPC_ADDRESS_JAVA_SIF_PLUGIN_C Comms endpoint
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   220
    // that our ResultsServer will listen to.
49
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
   221
    commandLine.Append(KCommsResult);
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
   222
    commandLine.AppendNum(IPC_ADDRESS_JAVA_SIF_PLUGIN_C);
21
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   223
49
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
   224
    err = aFileHandle.FullName(fileName);
21
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   225
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   226
    // Java Installer does not have AllFiles capability.
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   227
    // So if the .jad/.jar file is in the private data cage of
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   228
    // Remove Application Management system, it must be copied
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   229
    // to the private data cage of Java Installer in this
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   230
    // plugin which is executed in process which hopefully has
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   231
    // AllFiles capability.
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   232
    TRAP(err, CopyFilesIfNeededL(fileName));
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   233
    if (KErrNone != err)
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   234
    {
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   235
        TRequestStatus *statusPtr(&aStatus);
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   236
        User::RequestComplete(statusPtr, err);
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   237
        return;
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   238
    }
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   239
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   240
    // Check whether the file is .jad or .jar
49
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
   241
    TBool isJad;
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
   242
    err = IsJadFile(aFileHandle, isJad);
21
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   243
    if (KErrNone != err)
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   244
    {
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   245
        TRequestStatus *statusPtr(&aStatus);
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   246
        User::RequestComplete(statusPtr, err);
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   247
        return;
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   248
    }
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   249
    if (isJad)
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   250
    {
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   251
        // Installation should be started from JAD file
49
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
   252
        commandLine.Append(KJad);
21
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   253
    }
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   254
    else
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   255
    {
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   256
        // from JAR file
49
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
   257
        commandLine.Append(KJar);
21
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   258
    }
49
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
   259
21
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   260
    // Filename parameter must be surrounded in double quotes to
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   261
    // ensure that spaces in filename are passed correctly.
49
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
   262
    commandLine.Append(KDoubleQuote);
21
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   263
    commandLine.Append(fileName);
49
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
   264
    commandLine.Append(KDoubleQuote);
21
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   265
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   266
    // Start JavaInstaller
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   267
    std::auto_ptr<HBufC> installerProcess(
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   268
        stringToDes(java::runtime::JAVA_PROCESS));
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   269
    err = rJavaInstaller.Create(installerProcess->Des(), commandLine);
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   270
    if (KErrNone == err)
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   271
    {
49
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
   272
        err = StartResultsServer(*mDummyResults, aComponentInfo);
21
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   273
        if (KErrNone != err)
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   274
        {
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   275
            // server cannot be started
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   276
            rJavaInstaller.Close();
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   277
            ELOG1(EJavaInstaller,
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   278
                  "CJavaSifPlugin::GetComponentInfo: Cannot start results server, err %d", err);
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   279
            TRequestStatus *statusPtr(&aStatus);
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   280
            User::RequestComplete(statusPtr, err);
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   281
            return;
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   282
        }
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   283
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   284
        // The status of the component info operation == the exit status of Java Installer
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   285
        // It will be passed to the asynch caller through aStatus
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   286
        rJavaInstaller.Logon(aStatus);
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   287
    }
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   288
    else
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   289
    {
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   290
        rJavaInstaller.Close();
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   291
        ELOG1(EJavaInstaller,
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   292
              "CJavaSifPlugin::GetComponentInfo: starting JavaInstaller failed, err=%d", err);
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   293
        TRequestStatus *statusPtr(&aStatus);
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   294
        User::RequestComplete(statusPtr, err);
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   295
        return;
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   296
    }
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   297
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   298
    rJavaInstaller.Resume();
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   299
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   300
    // Do NOT close rJavaInstaller now -> the caller gets notification when the
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   301
    // process actually closes.
50
023eef975703 v2.2.4_1
hgs
parents: 49
diff changeset
   302
    err = mHandlesToClose.Append(rJavaInstaller);
023eef975703 v2.2.4_1
hgs
parents: 49
diff changeset
   303
    if ( err )
023eef975703 v2.2.4_1
hgs
parents: 49
diff changeset
   304
    {
023eef975703 v2.2.4_1
hgs
parents: 49
diff changeset
   305
        rJavaInstaller.Close();
023eef975703 v2.2.4_1
hgs
parents: 49
diff changeset
   306
        ELOG1(EJavaInstaller, "CJavaSifPlugin::GetComponentInfo  mHandles"
023eef975703 v2.2.4_1
hgs
parents: 49
diff changeset
   307
              "ToClose.Append failed with error %d", err);
023eef975703 v2.2.4_1
hgs
parents: 49
diff changeset
   308
        TRequestStatus *statusPtr(&aStatus);
023eef975703 v2.2.4_1
hgs
parents: 49
diff changeset
   309
        User::RequestComplete(statusPtr, err);
023eef975703 v2.2.4_1
hgs
parents: 49
diff changeset
   310
        return;
023eef975703 v2.2.4_1
hgs
parents: 49
diff changeset
   311
    }
21
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   312
}
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   313
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   314
void CJavaSifPlugin::Install(
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   315
    const TDesC& aFileName,
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   316
    const TSecurityContext& aSecurityContext,
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   317
    const COpaqueNamedParams& aArguments,
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   318
    COpaqueNamedParams& aResults,
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   319
    TRequestStatus& aStatus)
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   320
{
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   321
    RFile fileHandle;
49
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
   322
    TInt err = fileHandle.Open(mRFs, aFileName, EFileShareReadersOnly | EFileRead);
21
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   323
    if (KErrNone != err)
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   324
    {
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   325
        ELOG1(EJavaInstaller,
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   326
              "CJavaSifPlugin::Install Opening file for reading failed with error %d", err);
49
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
   327
        TRAP_IGNORE(aResults.AddIntL(KSifOutParam_ErrCategory, EUnexpectedError));
21
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   328
        TRequestStatus *statusPtr(&aStatus);
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   329
        User::RequestComplete(statusPtr, err);
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   330
        return;
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   331
    }
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   332
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   333
    Install(fileHandle, aSecurityContext, aArguments, aResults, aStatus);
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   334
    fileHandle.Close();
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   335
}
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   336
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   337
void CJavaSifPlugin::Install(
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   338
    RFile& aFileHandle,
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   339
    const TSecurityContext& aSecurityContext,
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   340
    const COpaqueNamedParams& aArguments,
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   341
    COpaqueNamedParams& aResults,
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   342
    TRequestStatus& aStatus)
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   343
{
35
85266cc22c7f Revision: v2.2.1
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 21
diff changeset
   344
    if (ExitIfJavaInstallerRunning(aResults, aStatus))
85266cc22c7f Revision: v2.2.1
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 21
diff changeset
   345
    {
85266cc22c7f Revision: v2.2.1
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 21
diff changeset
   346
        return;
85266cc22c7f Revision: v2.2.1
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 21
diff changeset
   347
    }
85266cc22c7f Revision: v2.2.1
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 21
diff changeset
   348
49
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
   349
    // Create buffer for Java Installer command line
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
   350
    HBufC* pBufCommandLine = NULL;
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
   351
    TRAPD(err, pBufCommandLine = HBufC::NewL(KLongCmdLineLen))
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
   352
    if (KErrNone != err)
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
   353
    {
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
   354
        TRAP_IGNORE(aResults.AddIntL(KSifOutParam_ErrCategory, ELowMemory));
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
   355
        TRequestStatus *statusPtr(&aStatus);
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
   356
        User::RequestComplete(statusPtr, err);
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
   357
        return;
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
   358
    }
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
   359
    std::auto_ptr<HBufC> bufCommandLine(pBufCommandLine);
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
   360
    TPtr commandLine = pBufCommandLine->Des();
21
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   361
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   362
    // Build command line used to pass all necessary info to Java Installer
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   363
    std::auto_ptr<HBufC> installerStarterDll(
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   364
        stringToDes(java::runtime::JAVA_INSTALLER_STARTER_DLL));
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   365
    commandLine = installerStarterDll->Des();
49
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
   366
    commandLine.Append(KInstall);
21
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   367
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   368
    // Check whether this is silent installation
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   369
    TInt silentInstall = 0;
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   370
    TRAP_IGNORE(aArguments.GetIntByNameL(KSifInParam_InstallSilently, silentInstall));
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   371
    if (silentInstall)
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   372
    {
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   373
        // Silent installation requires TrustedUI capability
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   374
        if (!aSecurityContext.HasCapability(ECapabilityTrustedUI))
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   375
        {
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   376
            ELOG(EJavaInstaller,
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   377
                 "CJavaSifPlugin::Install The caller did not have TrustedUI capability");
49
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
   378
            TRAP_IGNORE(aResults.AddIntL(KSifOutParam_ErrCategory, ESecurityError));
21
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   379
            TRequestStatus *statusPtr(&aStatus);
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   380
            User::RequestComplete(statusPtr, KErrPermissionDenied);
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   381
            return;
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   382
        }
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   383
49
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
   384
        commandLine.Append(KSilent);
21
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   385
    }
50
023eef975703 v2.2.4_1
hgs
parents: 49
diff changeset
   386
    else
023eef975703 v2.2.4_1
hgs
parents: 49
diff changeset
   387
    {
023eef975703 v2.2.4_1
hgs
parents: 49
diff changeset
   388
        // Uncomment this to enable 'preparing installation' dialog.
023eef975703 v2.2.4_1
hgs
parents: 49
diff changeset
   389
        //TRAP(err, CreatePrepInstDialogL());
023eef975703 v2.2.4_1
hgs
parents: 49
diff changeset
   390
        //if (KErrNone != err)
023eef975703 v2.2.4_1
hgs
parents: 49
diff changeset
   391
        //{
023eef975703 v2.2.4_1
hgs
parents: 49
diff changeset
   392
        //    WLOG1(EJavaInstaller,
023eef975703 v2.2.4_1
hgs
parents: 49
diff changeset
   393
        //          "CJavaSifPlugin::Install Creating preparing installation dialog failed, err=%d",
023eef975703 v2.2.4_1
hgs
parents: 49
diff changeset
   394
        //          err);
023eef975703 v2.2.4_1
hgs
parents: 49
diff changeset
   395
        //}
023eef975703 v2.2.4_1
hgs
parents: 49
diff changeset
   396
    }
21
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   397
49
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
   398
    BuildInstallCommandLine(commandLine, aArguments);
21
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   399
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   400
    // Ask Java Installer to send installation results back
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   401
    // as Comms message. 11000 is IPC_ADDRESS_JAVA_SIF_PLUGIN_C Comms endpoint
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   402
    // that our ResultsServer will listen to.
49
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
   403
    commandLine.Append(KCommsResult);
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
   404
    commandLine.AppendNum(IPC_ADDRESS_JAVA_SIF_PLUGIN_C);
21
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   405
49
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
   406
    TFileName fileName;
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
   407
    err = aFileHandle.FullName(fileName);
21
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   408
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   409
    // Java Installer does not have AllFiles capability.
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   410
    // So if the .jad/.jar file is in the private data cage of
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   411
    // Remove Application Management system, it must be copied
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   412
    // to the private data cage of Java Installer in this
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   413
    // plugin which is executed in process which hopefully has
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   414
    // AllFiles capability.
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   415
    TRAP(err, CopyFilesIfNeededL(fileName));
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   416
    if (KErrNone != err)
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   417
    {
49
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
   418
        TRAP_IGNORE(aResults.AddIntL(KSifOutParam_ErrCategory, EUnexpectedError));
21
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   419
        TRequestStatus *statusPtr(&aStatus);
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   420
        User::RequestComplete(statusPtr, err);
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   421
        return;
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   422
    }
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   423
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   424
    // Check whether the file is .jad or .jar
49
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
   425
    TBool isJad = EFalse;
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
   426
    err = IsJadFile(aFileHandle, aArguments, isJad);
21
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   427
    if (KErrNone != err)
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   428
    {
49
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
   429
        TRAP_IGNORE(aResults.AddIntL(KSifOutParam_ErrCategory, EUnexpectedError));
21
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   430
        TRequestStatus *statusPtr(&aStatus);
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   431
        User::RequestComplete(statusPtr, err);
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   432
        return;
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   433
    }
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   434
    if (isJad)
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   435
    {
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   436
        // Installation should be started from JAD file
49
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
   437
        commandLine.Append(KJad);
21
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   438
    }
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   439
    else
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   440
    {
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   441
        // from JAR file
49
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
   442
        commandLine.Append(KJar);
21
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   443
    }
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   444
    // Filename parameter must be surrounded in double quotes to
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   445
    // ensure that spaces in filename are passed correctly.
49
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
   446
    commandLine.Append(KDoubleQuote);
21
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   447
    commandLine.Append(fileName);
49
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
   448
    commandLine.Append(KDoubleQuote);
21
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   449
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   450
    // Start JavaInstaller
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   451
    std::auto_ptr<HBufC> installerProcess(
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   452
        stringToDes(java::runtime::JAVA_PROCESS));
49
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
   453
    RProcess rJavaInstaller;
21
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   454
    err = rJavaInstaller.Create(installerProcess->Des(), commandLine);
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   455
    if (KErrNone == err)
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   456
    {
49
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
   457
        err = StartResultsServer(aResults, *mDummyInfo);
21
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   458
        if (KErrNone != err)
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   459
        {
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   460
            // server cannot be started
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   461
            rJavaInstaller.Close();
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   462
            ELOG1(EJavaInstaller,
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   463
                  "CJavaSifPlugin::Install: Cannot start results server, err %d", err);
49
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
   464
            TRAP_IGNORE(aResults.AddIntL(KSifOutParam_ErrCategory, EUnexpectedError));
21
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   465
            TRequestStatus *statusPtr(&aStatus);
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   466
            User::RequestComplete(statusPtr, err);
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   467
            return;
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   468
        }
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   469
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   470
        // The status of the install operation == the exit status of Java Installer
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   471
        // It will be passed to the asynch caller through aStatus
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   472
        rJavaInstaller.Logon(aStatus);
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   473
    }
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   474
    else
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   475
    {
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   476
        rJavaInstaller.Close();
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   477
        ELOG1(EJavaInstaller,
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   478
              "CJavaSifPlugin::Install: starting JavaInstaller failed, err=%d", err);
49
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
   479
        TRAP_IGNORE(aResults.AddIntL(KSifOutParam_ErrCategory, EUnexpectedError));
21
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   480
        TRequestStatus *statusPtr(&aStatus);
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   481
        User::RequestComplete(statusPtr, err);
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   482
        return;
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   483
    }
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   484
50
023eef975703 v2.2.4_1
hgs
parents: 49
diff changeset
   485
    if (!silentInstall)
023eef975703 v2.2.4_1
hgs
parents: 49
diff changeset
   486
    {
023eef975703 v2.2.4_1
hgs
parents: 49
diff changeset
   487
        TRAP(err, mWaitToHideDialog =
023eef975703 v2.2.4_1
hgs
parents: 49
diff changeset
   488
             CAsyncWaitCallBack::NewL(TCallBack(HidePrepInstDialog, this)));
023eef975703 v2.2.4_1
hgs
parents: 49
diff changeset
   489
        if (KErrNone == err)
023eef975703 v2.2.4_1
hgs
parents: 49
diff changeset
   490
        {
023eef975703 v2.2.4_1
hgs
parents: 49
diff changeset
   491
            // The active object will wait until JavaInstaller process calls Rendezvous.
023eef975703 v2.2.4_1
hgs
parents: 49
diff changeset
   492
            // If JavaInstaller specifies reason code EJavaInstaller, then
023eef975703 v2.2.4_1
hgs
parents: 49
diff changeset
   493
            // the active object will call callback function that will hide the
023eef975703 v2.2.4_1
hgs
parents: 49
diff changeset
   494
            // 'Preparing installation' dialog. If reason code is not EJavaInstaller,
023eef975703 v2.2.4_1
hgs
parents: 49
diff changeset
   495
            // the wait object will automatically wait for the next rendezvous.
023eef975703 v2.2.4_1
hgs
parents: 49
diff changeset
   496
            mWaitToHideDialog->Wait( rJavaInstaller, EJavaInstaller );
023eef975703 v2.2.4_1
hgs
parents: 49
diff changeset
   497
        }
023eef975703 v2.2.4_1
hgs
parents: 49
diff changeset
   498
        else
023eef975703 v2.2.4_1
hgs
parents: 49
diff changeset
   499
        {
023eef975703 v2.2.4_1
hgs
parents: 49
diff changeset
   500
            ELOG1(EJavaInstaller, "CJavaSifPlugin::Install: Creating "
023eef975703 v2.2.4_1
hgs
parents: 49
diff changeset
   501
                  "mWaitToHideDialog failed, err %d", err);
023eef975703 v2.2.4_1
hgs
parents: 49
diff changeset
   502
        }
023eef975703 v2.2.4_1
hgs
parents: 49
diff changeset
   503
    }
21
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   504
    rJavaInstaller.Resume();
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   505
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   506
    // Do NOT close rJavaInstaller now -> the caller gets notification when the
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   507
    // process actually closes.
50
023eef975703 v2.2.4_1
hgs
parents: 49
diff changeset
   508
    err = mHandlesToClose.Append(rJavaInstaller);
023eef975703 v2.2.4_1
hgs
parents: 49
diff changeset
   509
    if ( err )
023eef975703 v2.2.4_1
hgs
parents: 49
diff changeset
   510
    {
023eef975703 v2.2.4_1
hgs
parents: 49
diff changeset
   511
        rJavaInstaller.Close();
023eef975703 v2.2.4_1
hgs
parents: 49
diff changeset
   512
        ELOG1(EJavaInstaller, "CJavaSifPlugin::Install  mHandles"
023eef975703 v2.2.4_1
hgs
parents: 49
diff changeset
   513
              "ToClose.Append failed with error %d", err);
023eef975703 v2.2.4_1
hgs
parents: 49
diff changeset
   514
        TRAP_IGNORE(aResults.AddIntL(KSifOutParam_ErrCategory, ELowMemory));
023eef975703 v2.2.4_1
hgs
parents: 49
diff changeset
   515
        TRequestStatus *statusPtr(&aStatus);
023eef975703 v2.2.4_1
hgs
parents: 49
diff changeset
   516
        User::RequestComplete(statusPtr, err);
023eef975703 v2.2.4_1
hgs
parents: 49
diff changeset
   517
        return;
023eef975703 v2.2.4_1
hgs
parents: 49
diff changeset
   518
    }
023eef975703 v2.2.4_1
hgs
parents: 49
diff changeset
   519
21
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   520
}
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   521
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   522
void CJavaSifPlugin::Uninstall(
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   523
    TComponentId aComponentId,
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   524
    const TSecurityContext& aSecurityContext,
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   525
    const COpaqueNamedParams& aArguments,
35
85266cc22c7f Revision: v2.2.1
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 21
diff changeset
   526
    COpaqueNamedParams& aResults,
21
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   527
    TRequestStatus& aStatus)
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   528
{
35
85266cc22c7f Revision: v2.2.1
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 21
diff changeset
   529
    if (ExitIfJavaInstallerRunning(aResults, aStatus))
85266cc22c7f Revision: v2.2.1
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 21
diff changeset
   530
    {
85266cc22c7f Revision: v2.2.1
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 21
diff changeset
   531
        return;
85266cc22c7f Revision: v2.2.1
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 21
diff changeset
   532
    }
85266cc22c7f Revision: v2.2.1
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 21
diff changeset
   533
49
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
   534
    // Allocate buffer for Java Installer command line
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
   535
    HBufC* pBufCommandLine = NULL;
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
   536
    TRAPD(err, pBufCommandLine = HBufC::NewL(KShortCmdLineLen))
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
   537
    if (KErrNone != err)
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
   538
    {
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
   539
        TRAP_IGNORE(aResults.AddIntL(KSifOutParam_ErrCategory, ELowMemory));
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
   540
        TRequestStatus *statusPtr(&aStatus);
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
   541
        User::RequestComplete(statusPtr, err);
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
   542
        return;
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
   543
    }
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
   544
    std::auto_ptr<HBufC> bufCommandLine(pBufCommandLine);
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
   545
    TPtr commandLine = pBufCommandLine->Des();
21
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   546
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   547
    // Build command line used to pass all necessary info to Java Installer
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   548
    std::auto_ptr<HBufC> installerStarterDll(
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   549
        stringToDes(java::runtime::JAVA_INSTALLER_STARTER_DLL));
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   550
    commandLine = installerStarterDll->Des();
49
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
   551
    commandLine.Append(KUninstall);
21
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   552
49
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
   553
    commandLine.Append(KCid);
21
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   554
    commandLine.AppendNum(aComponentId);
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   555
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   556
    // Check whether this is silent uninstallation
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   557
    TInt silentInstall = 0;
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   558
    TRAP_IGNORE(aArguments.GetIntByNameL(KSifInParam_InstallSilently, silentInstall));
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   559
    if (silentInstall)
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   560
    {
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   561
        // Silent uninstallation requires TrustedUI capability
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   562
        if (!aSecurityContext.HasCapability(ECapabilityTrustedUI))
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   563
        {
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   564
            ELOG(EJavaInstaller,
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   565
                 "CJavaSifPlugin::Uninstall The caller did not have TrustedUI capability");
49
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
   566
            TRAP_IGNORE(aResults.AddIntL(KSifOutParam_ErrCategory, ESecurityError));
21
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   567
            TRequestStatus *statusPtr(&aStatus);
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   568
            User::RequestComplete(statusPtr, KErrPermissionDenied);
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   569
            return;
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   570
        }
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   571
49
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
   572
        commandLine.Append(KSilent);
21
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   573
    }
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   574
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   575
    // start JavaInstaller
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   576
    std::auto_ptr<HBufC> installerProcess(
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   577
        stringToDes(java::runtime::JAVA_PROCESS));
49
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
   578
    RProcess rJavaInstaller;
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
   579
    err = rJavaInstaller.Create(installerProcess->Des(), commandLine);
21
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   580
    if (KErrNone == err)
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   581
    {
49
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
   582
        err = StartResultsServer(aResults, *mDummyInfo);
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
   583
        if (KErrNone != err)
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
   584
        {
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
   585
            // server cannot be started
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
   586
            rJavaInstaller.Close();
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
   587
            ELOG1(EJavaInstaller,
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
   588
                  "CJavaSifPlugin::Uninstall: Cannot start results server, err %d", err);
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
   589
            TRAP_IGNORE(aResults.AddIntL(KSifOutParam_ErrCategory, EUnexpectedError));
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
   590
            TRequestStatus *statusPtr(&aStatus);
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
   591
            User::RequestComplete(statusPtr, err);
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
   592
            return;
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
   593
        }
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
   594
21
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   595
        // the exit status of Java Installer will be passed to
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   596
        // the asynch caller through aStatus
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   597
        rJavaInstaller.Logon(aStatus);
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   598
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   599
        rJavaInstaller.Resume();
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   600
    }
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   601
    else
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   602
    {
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   603
        rJavaInstaller.Close();
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   604
        ELOG1(EJavaInstaller,
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   605
             "CJavaSifPlugin::Uninstall: starting JavaInstaller failed, err=%d", err);
49
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
   606
        TRAP_IGNORE(aResults.AddIntL(KSifOutParam_ErrCategory, EUnexpectedError));
21
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   607
        TRequestStatus *statusPtr(&aStatus);
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   608
        User::RequestComplete(statusPtr, err);
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   609
        return;
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   610
    }
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   611
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   612
    // Do NOT close rJavaInstaller now -> the caller gets notification when the
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   613
    // process actually closes.
50
023eef975703 v2.2.4_1
hgs
parents: 49
diff changeset
   614
    err = mHandlesToClose.Append(rJavaInstaller);
023eef975703 v2.2.4_1
hgs
parents: 49
diff changeset
   615
    if ( err )
023eef975703 v2.2.4_1
hgs
parents: 49
diff changeset
   616
    {
023eef975703 v2.2.4_1
hgs
parents: 49
diff changeset
   617
        rJavaInstaller.Close();
023eef975703 v2.2.4_1
hgs
parents: 49
diff changeset
   618
        ELOG1(EJavaInstaller, "CJavaSifPlugin::Uninstall  mHandles"
023eef975703 v2.2.4_1
hgs
parents: 49
diff changeset
   619
              "ToClose.Append failed with error %d", err);
023eef975703 v2.2.4_1
hgs
parents: 49
diff changeset
   620
        TRAP_IGNORE(aResults.AddIntL(KSifOutParam_ErrCategory, ELowMemory));
023eef975703 v2.2.4_1
hgs
parents: 49
diff changeset
   621
        TRequestStatus *statusPtr(&aStatus);
023eef975703 v2.2.4_1
hgs
parents: 49
diff changeset
   622
        User::RequestComplete(statusPtr, err);
023eef975703 v2.2.4_1
hgs
parents: 49
diff changeset
   623
        return;
023eef975703 v2.2.4_1
hgs
parents: 49
diff changeset
   624
    }
21
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   625
}
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   626
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   627
void CJavaSifPlugin::Activate(
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   628
    TComponentId /* aComponentId */,
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   629
    const TSecurityContext& /* aSecurityContext */,
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   630
    TRequestStatus& aStatus)
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   631
{
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   632
    // java applications are always active
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   633
    TRequestStatus *statusPtr(&aStatus);
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   634
    User::RequestComplete(statusPtr, KErrNone);
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   635
    return;
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   636
}
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   637
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   638
void CJavaSifPlugin::Deactivate(
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   639
    TComponentId /* aComponentId */,
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   640
    const TSecurityContext& /* aSecurityContext */,
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   641
    TRequestStatus& aStatus)
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   642
{
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   643
    // java applications are always active
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   644
    TRequestStatus *statusPtr(&aStatus);
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   645
    User::RequestComplete(statusPtr, KErrNotSupported);
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   646
    return;
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   647
}
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   648
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   649
void CJavaSifPlugin::CancelOperation()
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   650
{
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   651
    // Send cancel message to Java Installer
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   652
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   653
    // Check whether there is anything to cancel
49
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
   654
    if (mHandlesToClose.Count() < 1)
21
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   655
    {
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   656
        // No Java Installer process running, do nothing
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   657
        WLOG(EJavaInstaller,
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   658
            "CJavaSifPlugin::CancelOperation: Cancel called but there is no operation to cancel");
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   659
        return;
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   660
    }
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   661
49
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
   662
    CommsMessage message;
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
   663
    message.setReceiver(IPC_ADDRESS_JAVA_INSTALLER_SERVER_C);
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
   664
    message.setSender(IPC_ADDRESS_JAVA_SIF_PLUGIN_C);
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
   665
    message.setMessageId(INSTALLER_CANCEL_MESSAGE_ID);
21
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   666
49
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
   667
    CommsMessage replyMessage;
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
   668
    int timeout = 10; // 10 seconds  // codescanner::magicnumbers
21
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   669
49
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
   670
    CommsClientEndpoint comms;
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
   671
    int err = comms.connect(IPC_ADDRESS_JAVA_INSTALLER_SERVER_C);
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
   672
    if (KErrNone == err)
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
   673
    {
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
   674
        err = comms.sendReceive(message, replyMessage, timeout);
21
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   675
    }
49
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
   676
    else
21
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   677
    {
49
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
   678
        // Cannot connect to Java Installer Comms end point,
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
   679
        // for example Java Installer is still starting up or
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
   680
        // already exiting
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
   681
        WLOG1(EJavaInstaller,
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
   682
            "CJavaSifPlugin:CancelOperation: Cannot connect to Java Installer "
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
   683
            "Comms end point, err %d", err);
21
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   684
        return;
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   685
    }
49
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
   686
    if (err != 0)
21
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   687
    {
49
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
   688
        // Sending message to Java Installer failed.
21
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   689
        ELOG1(EJavaInstaller,
49
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
   690
            "CJavaSifPlugin:CancelOperation: Cannot send message to Java Installer, err %d",
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
   691
            err);
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
   692
        // Ignore possible errors in disconnect
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
   693
        (void)comms.disconnect();  // codescanner::voidparameter
21
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   694
        return;
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   695
    }
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   696
49
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
   697
    // Ignore the cancel result returned in replyMessage
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
   698
    // because current SIF API does not return cancel result
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
   699
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
   700
    // Ignore possible errors in disconnect
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
   701
    (void)comms.disconnect();  // codescanner::voidparameter
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
   702
21
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   703
    // It takes some time before Java Installer had really cancelled
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   704
    // the operation and exited. Wait for it to happen because this function
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   705
    // must return only after the original asynchronous call is completed.
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   706
    TRequestStatus status;
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   707
    // This array contains process handles for all Java Installer processes
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   708
    // started from this sif plugin. The last handle is the active one.
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   709
    // Check if it is still running
49
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
   710
    if (mHandlesToClose[mHandlesToClose.Count()-1].ExitReason() != 0)
21
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   711
    {
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   712
        // Process has already closed
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   713
        return;
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   714
    }
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   715
    // Wait until it exits
49
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
   716
    mHandlesToClose[mHandlesToClose.Count()-1].Logon(status);
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
   717
    User::WaitForRequest(status);  // codescanner::userWaitForRequest
21
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   718
    // Ignore the exit status of Java Installer because current SIF API
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   719
    // does not return cancel result
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   720
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   721
    return;
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   722
}
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   723
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   724
void CJavaSifPlugin::CopyFilesIfNeededL(TFileName &aFileName)
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   725
{
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   726
    // Check if the file is in the private data cage of some process
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   727
    TInt idx = aFileName.FindF(KPrivateDataCage);
49
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
   728
    if ((idx != KErrNotFound) && (idx < 3))   // codescanner::magicnumbers
21
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   729
    {
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   730
        // In case of device Inbox or Java Installer itself do nothing
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   731
        if ((aFileName.FindF(KInboxDataCage) != KErrNotFound) ||
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   732
                (aFileName.FindF(KJavaInstallerDataCage) != KErrNotFound))
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   733
        {
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   734
            return;
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   735
        }
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   736
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   737
        // Copy ALL files with the same base filename as aFileName
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   738
        // to Java Installer tmp dir so that both .jad file and
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   739
        // the corresponding .jar file are copied.
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   740
        // (aFileName is <path>\<name>.<ext>, copy <path>\<name>.*
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   741
        // to Java Installer tmp dir.)
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   742
        TParse fp;
49
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
   743
        mRFs.Parse(aFileName, fp);
21
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   744
        TFileName filesToCopy = fp.DriveAndPath();
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   745
        filesToCopy.Append(fp.Name());
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   746
        filesToCopy.Append(KAnyExtension);
50
023eef975703 v2.2.4_1
hgs
parents: 49
diff changeset
   747
023eef975703 v2.2.4_1
hgs
parents: 49
diff changeset
   748
        // Use JavaInstallCopier.exe to copy the files.
023eef975703 v2.2.4_1
hgs
parents: 49
diff changeset
   749
        RProcess rJavaInstallCopier;
023eef975703 v2.2.4_1
hgs
parents: 49
diff changeset
   750
        TInt err = rJavaInstallCopier.Create(
023eef975703 v2.2.4_1
hgs
parents: 49
diff changeset
   751
            KJavaInstallCopierProcess, filesToCopy);
023eef975703 v2.2.4_1
hgs
parents: 49
diff changeset
   752
        if (KErrNone == err)
21
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   753
        {
50
023eef975703 v2.2.4_1
hgs
parents: 49
diff changeset
   754
            TRequestStatus status;
023eef975703 v2.2.4_1
hgs
parents: 49
diff changeset
   755
            rJavaInstallCopier.Logon(status);
023eef975703 v2.2.4_1
hgs
parents: 49
diff changeset
   756
            rJavaInstallCopier.Resume();
023eef975703 v2.2.4_1
hgs
parents: 49
diff changeset
   757
            User::WaitForRequest(status); // codescanner::userWaitForRequest
023eef975703 v2.2.4_1
hgs
parents: 49
diff changeset
   758
            err = rJavaInstallCopier.ExitReason();
023eef975703 v2.2.4_1
hgs
parents: 49
diff changeset
   759
            rJavaInstallCopier.Close();
023eef975703 v2.2.4_1
hgs
parents: 49
diff changeset
   760
            if (KErrNone != err)
023eef975703 v2.2.4_1
hgs
parents: 49
diff changeset
   761
            {
023eef975703 v2.2.4_1
hgs
parents: 49
diff changeset
   762
                ELOG1(EJavaInstaller,
023eef975703 v2.2.4_1
hgs
parents: 49
diff changeset
   763
                      "CJavaSifPlugin::CopyFilesIfNeededL: copying files "
023eef975703 v2.2.4_1
hgs
parents: 49
diff changeset
   764
                      "to JavaInstaller data cage failed, err=%d", err);
023eef975703 v2.2.4_1
hgs
parents: 49
diff changeset
   765
                User::Leave(err);
023eef975703 v2.2.4_1
hgs
parents: 49
diff changeset
   766
            }
023eef975703 v2.2.4_1
hgs
parents: 49
diff changeset
   767
        }
023eef975703 v2.2.4_1
hgs
parents: 49
diff changeset
   768
        else
023eef975703 v2.2.4_1
hgs
parents: 49
diff changeset
   769
        {
023eef975703 v2.2.4_1
hgs
parents: 49
diff changeset
   770
            rJavaInstallCopier.Close();
21
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   771
            ELOG1(EJavaInstaller,
50
023eef975703 v2.2.4_1
hgs
parents: 49
diff changeset
   772
                  "CJavaSifPlugin::CopyFilesIfNeededL: starting "
023eef975703 v2.2.4_1
hgs
parents: 49
diff changeset
   773
                  "JavaInstallCopier failed, err=%d", err);
21
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   774
            User::Leave(err);
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   775
        }
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   776
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   777
        // aFileName must point to the copy of the file
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   778
        aFileName = fp.Drive();
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   779
        aFileName.Append(KJavaInstallerTmp);
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   780
        aFileName.Append(fp.NameAndExt());
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   781
    }
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   782
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   783
    return;
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   784
}
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   785
49
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
   786
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
   787
TInt CJavaSifPlugin::IsJadFile(
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
   788
    RFile& aFileHandle,
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
   789
    const COpaqueNamedParams& aArguments,
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
   790
    TBool& aIsJad)
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
   791
{
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
   792
    TBool mimeTypeGiven = EFalse;
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
   793
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
   794
    TRAP_IGNORE(
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
   795
        const TDesC &desValue = aArguments.StringByNameL(KSifInParam_MimeType);
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
   796
        if (desValue.Length() > 0)
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
   797
        {
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
   798
            mimeTypeGiven = ETrue;
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
   799
            if (!desValue.Compare(KJadMimeType))
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
   800
            {
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
   801
                aIsJad = ETrue;
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
   802
            }
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
   803
            else
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
   804
            {
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
   805
                aIsJad = EFalse;
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
   806
            }
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
   807
        }
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
   808
    )
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
   809
    if (mimeTypeGiven)
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
   810
    {
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
   811
        return KErrNone;
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
   812
    }
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
   813
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
   814
    // Mime type was not given in the input arguments, must check the contents
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
   815
    // of the file itself
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
   816
    return IsJadFile(aFileHandle, aIsJad);
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
   817
}
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
   818
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
   819
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
   820
TInt CJavaSifPlugin::IsJadFile(
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
   821
    RFile& aFileHandle,
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
   822
    TBool& aIsJad)
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
   823
{
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
   824
    RApaLsSession apaSession;
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
   825
    TInt err = apaSession.Connect();
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
   826
    if (KErrNone != err)
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
   827
    {
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
   828
        ELOG1(EJavaInstaller,
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
   829
            "CJavaSifPlugin::IsJadFile RApaLsSession Connect error %d", err);
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
   830
        return err;
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
   831
    }
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
   832
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
   833
    TDataType jadFileMimeType(K8JadMimeType);
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
   834
    err = apaSession.RecognizeSpecificData(aFileHandle, jadFileMimeType, aIsJad);
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
   835
    apaSession.Close();
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
   836
    if (KErrNone != err)
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
   837
    {
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
   838
        // Just log the error
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
   839
        ELOG1(EJavaInstaller,
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
   840
            "CJavaSifPlugin::IsJadFile RApaLsSession RecognizeSpecificData error %d",
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
   841
            err);
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
   842
        return err;
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
   843
    }
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
   844
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
   845
    return KErrNone;
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
   846
}
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
   847
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
   848
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
   849
void CJavaSifPlugin::BuildInstallCommandLine(
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
   850
    TPtr& aCommandLine,
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
   851
    const COpaqueNamedParams& aArguments)
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
   852
{
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
   853
    // KSifInParam_Drive -> -drive=install_target_drive (A, B, C, ..., Z)
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
   854
    TInt intValue = GetPositiveIntParam(KSifInParam_Drive, aArguments);
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
   855
    // Value 0 is 'A:' drive and  value 25 is 'Z:' drive
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
   856
    if ((intValue > -1) && (intValue < 26))  // codescanner::magicnumbers
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
   857
    {
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
   858
        aCommandLine.Append(KDrive);
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
   859
        TChar drive('A');
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
   860
        drive += intValue;
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
   861
        aCommandLine.Append(drive);
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
   862
    }
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
   863
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
   864
    // KSifInParam_PerformOCSP Yes/No/AskUser -> -ocsp=yes|no
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
   865
    intValue = GetPositiveIntParam(KSifInParam_PerformOCSP, aArguments);
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
   866
    if (intValue == 0) // Yes
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
   867
    {
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
   868
        aCommandLine.Append(KOcsp);
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
   869
        aCommandLine.Append(KYes);
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
   870
    }
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
   871
    else if (intValue == 1) // No
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
   872
    {
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
   873
        aCommandLine.Append(KOcsp);
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
   874
        aCommandLine.Append(KNo);
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
   875
    }
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
   876
    // AskUser is not supported
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
   877
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
   878
    // KSifInParam_IgnoreOCSPWarnings Yes/No/AskUser -> -ignore_ocsp_warnings=yes|no
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
   879
    intValue = GetPositiveIntParam(KSifInParam_IgnoreOCSPWarnings, aArguments);
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
   880
    if (intValue == 0) // Yes
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
   881
    {
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
   882
        aCommandLine.Append(KIgnoreOcspWarnings);
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
   883
        aCommandLine.Append(KYes);
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
   884
    }
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
   885
    else if (intValue == 1) // No
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
   886
    {
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
   887
        aCommandLine.Append(KIgnoreOcspWarnings);
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
   888
        aCommandLine.Append(KNo);
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
   889
    }
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
   890
    // AskUser is not supported
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
   891
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
   892
    // KSifInParam_AllowUpgrade Yes/No/AskUser -> -upgrade=yes|no
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
   893
    intValue = GetPositiveIntParam(KSifInParam_AllowUpgrade, aArguments);
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
   894
    if (intValue == 0) // Yes
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
   895
    {
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
   896
        aCommandLine.Append(KUpgrade);
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
   897
        aCommandLine.Append(KYes);
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
   898
    }
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
   899
    else if (intValue == 1) // No
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
   900
    {
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
   901
        aCommandLine.Append(KUpgrade);
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
   902
        aCommandLine.Append(KNo);
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
   903
    }
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
   904
    // AskUser is not supported
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
   905
50
023eef975703 v2.2.4_1
hgs
parents: 49
diff changeset
   906
    // KSifInParam_AllowUpgradeData Yes/No/AskUser -> -upgrade_data=yes|no
023eef975703 v2.2.4_1
hgs
parents: 49
diff changeset
   907
    intValue = GetPositiveIntParam(KSifInParam_AllowUpgradeData, aArguments);
49
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
   908
    if (intValue == 0) // Yes
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
   909
    {
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
   910
        aCommandLine.Append(KUpgradeData);
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
   911
        aCommandLine.Append(KYes);
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
   912
    }
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
   913
    else if (intValue == 1) // No
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
   914
    {
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
   915
        aCommandLine.Append(KUpgradeData);
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
   916
        aCommandLine.Append(KNo);
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
   917
    }
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
   918
    // AskUser is not supported
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
   919
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
   920
    // KSifInParam_AllowUntrusted Yes/No/AskUser -> -untrusted=yes|no
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
   921
    intValue = GetPositiveIntParam(KSifInParam_AllowUntrusted, aArguments);
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
   922
    if (intValue == 0) // Yes
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
   923
    {
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
   924
        aCommandLine.Append(KUntrusted);
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
   925
        aCommandLine.Append(KYes);
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
   926
    }
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
   927
    else if (intValue == 1) // No
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
   928
    {
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
   929
        aCommandLine.Append(KUntrusted);
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
   930
        aCommandLine.Append(KNo);
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
   931
    }
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
   932
    // AskUser is not supported
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
   933
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
   934
    // KSifInParam_AllowOverwrite Yes/No/AskUser -> -overwrite=yes|no
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
   935
    intValue = GetPositiveIntParam(KSifInParam_AllowOverwrite, aArguments);
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
   936
    if (intValue == 0) // Yes
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
   937
    {
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
   938
        aCommandLine.Append(KOverwrite);
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
   939
        aCommandLine.Append(KYes);
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
   940
    }
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
   941
    else if (intValue == 1) // No
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
   942
    {
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
   943
        aCommandLine.Append(KOverwrite);
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
   944
        aCommandLine.Append(KNo);
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
   945
    }
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
   946
    // AskUser is not supported
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
   947
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
   948
    // KSifInParam_AllowDownload Yes/No/AskUser -> -download=yes|no
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
   949
    intValue = GetPositiveIntParam(KSifInParam_AllowDownload, aArguments);
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
   950
    if (intValue == 0) // Yes
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
   951
    {
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
   952
        aCommandLine.Append(KDownload);
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
   953
        aCommandLine.Append(KYes);
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
   954
    }
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
   955
    else if (intValue == 1) // No
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
   956
    {
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
   957
        aCommandLine.Append(KDownload);
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
   958
        aCommandLine.Append(KNo);
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
   959
    }
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
   960
    // AskUser is not supported
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
   961
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
   962
    // KSifInParam_IAP -> -iap=IAP_ID (internet access point id)
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
   963
    intValue = GetPositiveIntParam(KSifInParam_IAP, aArguments);
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
   964
    if (intValue > -1)
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
   965
    {
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
   966
        // IAP ids are always positive
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
   967
        aCommandLine.Append(KIap);
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
   968
        aCommandLine.AppendNum(intValue);
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
   969
    }
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
   970
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
   971
    // KSifInParam_SNAP -> -snap=SNAP_ID (service network access point id)
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
   972
    intValue = GetPositiveIntParam(KSifInParam_SNAP, aArguments);
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
   973
    if (intValue > -1)
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
   974
    {
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
   975
        // SNAP ids are always positive
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
   976
        aCommandLine.Append(KSnap);
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
   977
        aCommandLine.AppendNum(intValue);
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
   978
    }
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
   979
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
   980
    // When this param is given, Java Installer will cancel installation
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
   981
    // before committing anything. This option is for debugging purposes only.
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
   982
    // KForceCancel -> -forcecancel
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
   983
    // The value of parameter is ignored
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
   984
    TRAP_IGNORE(
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
   985
        const TDesC &desValue = aArguments.StringByNameL(KForceCancel);
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
   986
        if (desValue.Length() > 0)
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
   987
        {
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
   988
            aCommandLine.Append(KForceCancel);
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
   989
        }
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
   990
    )
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
   991
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
   992
    std::wstring base64EncodedArgs;
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
   993
    // KSifInParam_UserName -> -username=download_username
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
   994
    TRAP_IGNORE(
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
   995
        const TDesC &desValue = aArguments.StringByNameL(KSifInParam_UserName);
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
   996
        if (desValue.Length() > 0)
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
   997
        {
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
   998
            try
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
   999
            {
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
  1000
                std::wstring value((wchar_t *)(desValue.Ptr()), desValue.Length());
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
  1001
                std::wstring encodedValue = JavaCommonUtils::wbase64encode(value);
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
  1002
                aCommandLine.Append(KUsername);
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
  1003
                aCommandLine.Append(
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
  1004
                    (const unsigned short *)encodedValue.c_str(), (int)encodedValue.length());
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
  1005
                base64EncodedArgs.append(L"username,");
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
  1006
            }
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
  1007
            catch (std::exception& e)
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
  1008
            {
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
  1009
                ELOG1(EJavaInstaller,
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
  1010
                    "CJavaSifPlugin::BuildInstallCommandLine Base64 encoding user "
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
  1011
                    "name failed, err %s", e.what());
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
  1012
            }
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
  1013
        }
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
  1014
    )
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
  1015
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
  1016
    // KSifInParam_Password -> -password=download_password
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
  1017
    TRAP_IGNORE(
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
  1018
        const TDesC &desValue = aArguments.StringByNameL(KSifInParam_Password);
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
  1019
        if (desValue.Length() > 0)
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
  1020
        {
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
  1021
            try
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
  1022
            {
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
  1023
                std::wstring value((wchar_t *)(desValue.Ptr()), desValue.Length());
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
  1024
                std::wstring encodedValue = JavaCommonUtils::wbase64encode(value);
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
  1025
                aCommandLine.Append(KPassword);
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
  1026
                aCommandLine.Append(
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
  1027
                    (const unsigned short *)encodedValue.c_str(), (int)encodedValue.length());
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
  1028
                base64EncodedArgs.append(L"password,");
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
  1029
            }
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
  1030
            catch (std::exception& e)
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
  1031
            {
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
  1032
                ELOG1(EJavaInstaller,
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
  1033
                    "CJavaSifPlugin::BuildInstallCommandLine Base64 encoding password "
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
  1034
                    "failed, err %s", e.what());
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
  1035
            }
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
  1036
        }
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
  1037
    )
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
  1038
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
  1039
    // KSifInParam_SourceUrl -> -sourceurl=original (HTTP) URL of the JAD or JAR file
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
  1040
    TRAP_IGNORE(
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
  1041
        const TDesC &desValue = aArguments.StringByNameL(KSifInParam_SourceUrl);
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
  1042
        if (desValue.Length() > 0)
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
  1043
        {
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
  1044
            try
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
  1045
            {
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
  1046
                std::wstring value((wchar_t *)(desValue.Ptr()), desValue.Length());
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
  1047
                std::wstring encodedValue = JavaCommonUtils::wbase64encode(value);
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
  1048
                aCommandLine.Append(KSourceUrl);
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
  1049
                aCommandLine.Append(
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
  1050
                    (const unsigned short *)encodedValue.c_str(), (int)encodedValue.length());
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
  1051
                base64EncodedArgs.append(L"sourceurl,");
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
  1052
            }
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
  1053
            catch (std::exception& e)
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
  1054
            {
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
  1055
                ELOG1(EJavaInstaller,
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
  1056
                    "CJavaSifPlugin::BuildInstallCommandLine Base64 encoding source "
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
  1057
                    "url failed, err %s", e.what());
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
  1058
            }
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
  1059
        }
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
  1060
    )
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
  1061
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
  1062
    // KSifInParam_Charset -> -charset=Internet-standard character set name
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
  1063
    TRAP_IGNORE(
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
  1064
        const TDesC &desValue = aArguments.StringByNameL(KSifInParam_Charset);
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
  1065
        if (desValue.Length() > 0)
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
  1066
        {
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
  1067
            try
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
  1068
            {
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
  1069
                std::wstring value((wchar_t *)(desValue.Ptr()), desValue.Length());
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
  1070
                std::wstring encodedValue = JavaCommonUtils::wbase64encode(value);
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
  1071
                aCommandLine.Append(KCharSet);
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
  1072
                aCommandLine.Append(
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
  1073
                    (const unsigned short *)encodedValue.c_str(), (int)encodedValue.length());
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
  1074
                base64EncodedArgs.append(L"charset,");
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
  1075
            }
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
  1076
            catch (std::exception& e)
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
  1077
            {
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
  1078
                ELOG1(EJavaInstaller,
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
  1079
                    "CJavaSifPlugin::BuildInstallCommandLine Base64 encoding charset "
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
  1080
                    "failed, err %s", e.what());
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
  1081
            }
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
  1082
        }
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
  1083
    )
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
  1084
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
  1085
    if (base64EncodedArgs.length() > 0)
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
  1086
    {
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
  1087
        // Tell Java Installer which arguments have been Base64 encoded
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
  1088
        aCommandLine.Append(KBase64);
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
  1089
        aCommandLine.Append(
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
  1090
            (const unsigned short *)base64EncodedArgs.c_str(), (int)base64EncodedArgs.length());
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
  1091
    }
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
  1092
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
  1093
    return;
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
  1094
}
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
  1095
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
  1096
TInt CJavaSifPlugin::GetPositiveIntParam(
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
  1097
        const TDesC& aName,
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
  1098
        const COpaqueNamedParams& aArguments)
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
  1099
{
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
  1100
    // Assume that the value will not be found
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
  1101
    TInt intValue = -1;
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
  1102
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
  1103
    // If the value can be read, intValue will be set, otherwise this function
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
  1104
    // returns -1
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
  1105
    TRAP_IGNORE((void)aArguments.GetIntByNameL(aName, intValue));  // codescanner::voidparameter
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
  1106
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
  1107
    return intValue;
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
  1108
}
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
  1109
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
  1110
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
  1111
TInt CJavaSifPlugin::StartResultsServer(
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
  1112
    COpaqueNamedParams& aResults,
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
  1113
    CComponentInfo& aComponentInfo)
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
  1114
{
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
  1115
    // Destroy old Comms server if it exists
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
  1116
    delete mResultsServer;
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
  1117
    mResultsServer = NULL;
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
  1118
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
  1119
    // Start new Comms server
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
  1120
    mResultsServer = new ResultsServer(aResults, aComponentInfo);  // codescanner::nonleavenew
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
  1121
    if (NULL == mResultsServer)
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
  1122
    {
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
  1123
        return KErrNoMemory;
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
  1124
    }
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
  1125
    else
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
  1126
    {
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
  1127
        // Start the server
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
  1128
        return mResultsServer->start();
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
  1129
    }
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
  1130
}
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
  1131
35baca0e7a2e v2.2.3_1
hgs
parents: 35
diff changeset
  1132
35
85266cc22c7f Revision: v2.2.1
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 21
diff changeset
  1133
TBool CJavaSifPlugin::ExitIfJavaInstallerRunning(
85266cc22c7f Revision: v2.2.1
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 21
diff changeset
  1134
    COpaqueNamedParams& aResults,
85266cc22c7f Revision: v2.2.1
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 21
diff changeset
  1135
    TRequestStatus& aStatus)
85266cc22c7f Revision: v2.2.1
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 21
diff changeset
  1136
{
85266cc22c7f Revision: v2.2.1
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 21
diff changeset
  1137
    // If Java Installer is already running, set error category EInstallerBusy etc
85266cc22c7f Revision: v2.2.1
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 21
diff changeset
  1138
    // to aResults and return
85266cc22c7f Revision: v2.2.1
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 21
diff changeset
  1139
85266cc22c7f Revision: v2.2.1
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 21
diff changeset
  1140
    TInt err(KErrNone);
85266cc22c7f Revision: v2.2.1
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 21
diff changeset
  1141
    RProcess proc;
85266cc22c7f Revision: v2.2.1
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 21
diff changeset
  1142
    TFindProcess finder(KJavaInstallerProcess);
85266cc22c7f Revision: v2.2.1
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 21
diff changeset
  1143
    TFullName procName;
85266cc22c7f Revision: v2.2.1
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 21
diff changeset
  1144
85266cc22c7f Revision: v2.2.1
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 21
diff changeset
  1145
    // Java Installer process SID is 0x102033E6 and name is "Installer"
85266cc22c7f Revision: v2.2.1
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 21
diff changeset
  1146
    while (finder.Next(procName) == KErrNone)
85266cc22c7f Revision: v2.2.1
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 21
diff changeset
  1147
    {
85266cc22c7f Revision: v2.2.1
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 21
diff changeset
  1148
        if (proc.Open(finder) != KErrNone)
85266cc22c7f Revision: v2.2.1
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 21
diff changeset
  1149
        {
85266cc22c7f Revision: v2.2.1
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 21
diff changeset
  1150
            continue;
85266cc22c7f Revision: v2.2.1
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 21
diff changeset
  1151
        }
85266cc22c7f Revision: v2.2.1
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 21
diff changeset
  1152
        if (proc.SecureId() == KJavaInstallerSecureID)
85266cc22c7f Revision: v2.2.1
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 21
diff changeset
  1153
        {
85266cc22c7f Revision: v2.2.1
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 21
diff changeset
  1154
            if (proc.ExitType() == EExitPending)
85266cc22c7f Revision: v2.2.1
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 21
diff changeset
  1155
            {
85266cc22c7f Revision: v2.2.1
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 21
diff changeset
  1156
                // Java Installer process is already running
85266cc22c7f Revision: v2.2.1
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 21
diff changeset
  1157
                proc.Close();
85266cc22c7f Revision: v2.2.1
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 21
diff changeset
  1158
85266cc22c7f Revision: v2.2.1
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 21
diff changeset
  1159
                // return error information
85266cc22c7f Revision: v2.2.1
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 21
diff changeset
  1160
                TRAP(err, aResults.AddIntL(KSifOutParam_ErrCategory, EInstallerBusy));
85266cc22c7f Revision: v2.2.1
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 21
diff changeset
  1161
                if (KErrNone != err)
85266cc22c7f Revision: v2.2.1
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 21
diff changeset
  1162
                {
85266cc22c7f Revision: v2.2.1
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 21
diff changeset
  1163
                    ELOG1(EJavaInstaller,
85266cc22c7f Revision: v2.2.1
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 21
diff changeset
  1164
                        "CJavaSifPlugin::ExitIfJavaInstallerRunning aResults.AddIntL "
85266cc22c7f Revision: v2.2.1
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 21
diff changeset
  1165
                        "ErrCategory err %d", err);
85266cc22c7f Revision: v2.2.1
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 21
diff changeset
  1166
                }
85266cc22c7f Revision: v2.2.1
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 21
diff changeset
  1167
85266cc22c7f Revision: v2.2.1
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 21
diff changeset
  1168
                TRAP(err, aResults.AddIntL(KSifOutParam_ErrCode, KErrInUse));
85266cc22c7f Revision: v2.2.1
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 21
diff changeset
  1169
                if (KErrNone != err)
85266cc22c7f Revision: v2.2.1
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 21
diff changeset
  1170
                {
85266cc22c7f Revision: v2.2.1
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 21
diff changeset
  1171
                    ELOG1(EJavaInstaller,
85266cc22c7f Revision: v2.2.1
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 21
diff changeset
  1172
                        "CJavaSifPlugin::ExitIfJavaInstallerRunning aResults.AddIntL "
85266cc22c7f Revision: v2.2.1
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 21
diff changeset
  1173
                        "ErrCode err %d", err);
85266cc22c7f Revision: v2.2.1
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 21
diff changeset
  1174
                }
85266cc22c7f Revision: v2.2.1
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 21
diff changeset
  1175
85266cc22c7f Revision: v2.2.1
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 21
diff changeset
  1176
                // TODO: return also localized error message from usif
85266cc22c7f Revision: v2.2.1
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 21
diff changeset
  1177
                // common localization file after the localized strings are available
85266cc22c7f Revision: v2.2.1
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 21
diff changeset
  1178
85266cc22c7f Revision: v2.2.1
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 21
diff changeset
  1179
                TRequestStatus *statusPtr(&aStatus);
85266cc22c7f Revision: v2.2.1
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 21
diff changeset
  1180
                User::RequestComplete(statusPtr, KErrInUse);
85266cc22c7f Revision: v2.2.1
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 21
diff changeset
  1181
                return ETrue;
85266cc22c7f Revision: v2.2.1
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 21
diff changeset
  1182
            }
85266cc22c7f Revision: v2.2.1
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 21
diff changeset
  1183
       }
85266cc22c7f Revision: v2.2.1
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 21
diff changeset
  1184
       proc.Close();
85266cc22c7f Revision: v2.2.1
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 21
diff changeset
  1185
    }
85266cc22c7f Revision: v2.2.1
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 21
diff changeset
  1186
85266cc22c7f Revision: v2.2.1
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 21
diff changeset
  1187
    return EFalse;
85266cc22c7f Revision: v2.2.1
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 21
diff changeset
  1188
}
85266cc22c7f Revision: v2.2.1
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 21
diff changeset
  1189
50
023eef975703 v2.2.4_1
hgs
parents: 49
diff changeset
  1190
/**
023eef975703 v2.2.4_1
hgs
parents: 49
diff changeset
  1191
 * Creates 'preparing installation' dialog.
023eef975703 v2.2.4_1
hgs
parents: 49
diff changeset
  1192
 */
023eef975703 v2.2.4_1
hgs
parents: 49
diff changeset
  1193
void CJavaSifPlugin::CreatePrepInstDialogL()
023eef975703 v2.2.4_1
hgs
parents: 49
diff changeset
  1194
{
023eef975703 v2.2.4_1
hgs
parents: 49
diff changeset
  1195
    ILOG(EJavaInstaller, "CJavaSifPlugin::CreatePrepInstDialogL creating dialog");
023eef975703 v2.2.4_1
hgs
parents: 49
diff changeset
  1196
    mPrepInstDialog = CHbDeviceNotificationDialogSymbian::NewL();
023eef975703 v2.2.4_1
hgs
parents: 49
diff changeset
  1197
    _LIT(KPrepInstText, "Preparing installation...");
023eef975703 v2.2.4_1
hgs
parents: 49
diff changeset
  1198
    mPrepInstDialog->SetTitleL(KPrepInstText);
023eef975703 v2.2.4_1
hgs
parents: 49
diff changeset
  1199
    mPrepInstDialog->SetTimeout(20*1000); // ms
023eef975703 v2.2.4_1
hgs
parents: 49
diff changeset
  1200
    mPrepInstDialog->ShowL();
023eef975703 v2.2.4_1
hgs
parents: 49
diff changeset
  1201
    ILOG(EJavaInstaller, "CJavaSifPlugin::CreatePrepInstDialogL dialog created");
023eef975703 v2.2.4_1
hgs
parents: 49
diff changeset
  1202
}
023eef975703 v2.2.4_1
hgs
parents: 49
diff changeset
  1203
023eef975703 v2.2.4_1
hgs
parents: 49
diff changeset
  1204
void CJavaSifPlugin::HidePrepInstDialogL()
023eef975703 v2.2.4_1
hgs
parents: 49
diff changeset
  1205
{
023eef975703 v2.2.4_1
hgs
parents: 49
diff changeset
  1206
    ILOG(EJavaInstaller, "CJavaSifPlugin::HidePrepInstDialogL hiding dialog");
023eef975703 v2.2.4_1
hgs
parents: 49
diff changeset
  1207
    // Stop further timed calls
023eef975703 v2.2.4_1
hgs
parents: 49
diff changeset
  1208
    if (mWaitToHideDialog)
023eef975703 v2.2.4_1
hgs
parents: 49
diff changeset
  1209
    {
023eef975703 v2.2.4_1
hgs
parents: 49
diff changeset
  1210
        mWaitToHideDialog->Cancel();
023eef975703 v2.2.4_1
hgs
parents: 49
diff changeset
  1211
    }
023eef975703 v2.2.4_1
hgs
parents: 49
diff changeset
  1212
    // Close wait dialog.
023eef975703 v2.2.4_1
hgs
parents: 49
diff changeset
  1213
    if (mPrepInstDialog)
023eef975703 v2.2.4_1
hgs
parents: 49
diff changeset
  1214
    {
023eef975703 v2.2.4_1
hgs
parents: 49
diff changeset
  1215
        mPrepInstDialog->Close();
023eef975703 v2.2.4_1
hgs
parents: 49
diff changeset
  1216
    }
023eef975703 v2.2.4_1
hgs
parents: 49
diff changeset
  1217
    ILOG(EJavaInstaller, "CJavaSifPlugin::HidePrepInstDialogL dialog hidden");
023eef975703 v2.2.4_1
hgs
parents: 49
diff changeset
  1218
}
35
85266cc22c7f Revision: v2.2.1
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents: 21
diff changeset
  1219
21
2a9601315dfc Revision: v2.1.22
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1220
//  End of File