applicationmanagement/server/src/AMDeploymentComponentData.cpp
branchRCL_3
changeset 57 6757f1e2efd2
parent 0 3ce708148e4d
child 58 5b858729772b
equal deleted inserted replaced
55:c4687ff85147 57:6757f1e2efd2
    13  *
    13  *
    14  * Description: Implementation of applicationmanagement components
    14  * Description: Implementation of applicationmanagement components
    15  *
    15  *
    16  */
    16  */
    17 
    17 
    18 #include "amdeploymentcomponentdata.h"
       
    19 
       
    20 #include <bautils.h>
    18 #include <bautils.h>
    21 #include <sisdataprovider.h>
       
    22 
       
    23 #include <DRMLicenseManager.h>
    19 #include <DRMLicenseManager.h>
    24 #include "debug.h"
       
    25 #include <pathinfo.h>
    20 #include <pathinfo.h>
    26 #include <zipfilemember.h>
    21 #include <zipfilemember.h>
       
    22 #include "amdeploymentcomponentdata.h"
       
    23 #include "debug.h"
    27 
    24 
    28 _LIT8( KSisxMimeType, "x-epoc/x-sisx-app" );
    25 _LIT8( KSisxMimeType, "x-epoc/x-sisx-app" );
    29 _LIT( KTempDir, "piptemp\\" );
    26 _LIT( KTempDir, "piptemp\\" );
    30 _LIT8( KPipMimeType, "application/x-pip" );
    27 _LIT8( KPipMimeType, "application/x-pip" );
    31 _LIT8( KDrmMessageMimeType, "application/vnd.oma.drm.message" );
    28 _LIT8( KDrmMessageMimeType, "application/vnd.oma.drm.message" );
    32 _LIT8( KDrmContentMimeType, "application/vnd.oma.drm.content" );
    29 _LIT8( KDrmContentMimeType, "application/vnd.oma.drm.content" );
    33 _LIT8( KSisMimeType, "application/vnd.symbian.install");
    30 _LIT8( KSisMimeType, "application/vnd.symbian.install");
       
    31 _LIT8( KJadMIMEType, "text/vnd.sun.j2me.app-descriptor" );
       
    32 _LIT8( KJarMIMEType, "application/java-archive" );
       
    33 _LIT8( KJavaMIMEType, "application/java" );
    34 
    34 
    35 using namespace NApplicationManagement;
    35 using namespace NApplicationManagement;
    36 
    36 
    37 /**
    37 /**
    38  *  Data class to Data access
    38  *  Data class to Data access
    43 
    43 
    44 CDeploymentComponentData::CDeploymentComponentData(TType aType,
    44 CDeploymentComponentData::CDeploymentComponentData(TType aType,
    45         const TDesC8 &aDataFile) :
    45         const TDesC8 &aDataFile) :
    46     iDataFileName(aDataFile), iType(aType)
    46     iDataFileName(aDataFile), iType(aType)
    47     {
    47     {
    48 
       
    49     }
    48     }
    50 
    49 
    51 void CDeploymentComponentData::ConstructL(const TDesC8 &aData,
    50 void CDeploymentComponentData::ConstructL(const TDesC8 &aData,
    52         const TDesC8 &aMime)
    51         const TDesC8 &aMime)
    53     {
    52     {
   208     RDEBUG8_2("CDeploymentComponentData::SetDataL() aMimeType: (%S)", &aMimeType);
   207     RDEBUG8_2("CDeploymentComponentData::SetDataL() aMimeType: (%S)", &aMimeType);
   209 
   208 
   210     TUid ret(TUid::Null());
   209     TUid ret(TUid::Null());
   211     iMimeType = aMimeType.Left(KMaxMimeLength);
   210     iMimeType = aMimeType.Left(KMaxMimeLength);
   212 
   211 
       
   212     if (aMimeType.Length()!=NULL)
       
   213         {
       
   214         TUid ret(TUid::Null());
       
   215         RFs fs;
       
   216         User::LeaveIfError(fs.Connect());
       
   217         CleanupClosePushL(fs);
       
   218         CFileMan *fm = CFileMan::NewL(fs);
       
   219         CleanupStack::PushL(fm);
       
   220         TFileName oldfilepath;
       
   221         oldfilepath.Copy(iDataFileName);
       
   222         
       
   223         
       
   224         RDEBUG("App Mgmt before copy start");
       
   225         TInt maxLength = iDataFileName.Length();
       
   226         TChar charvaldot = '.';
       
   227         TChar charvalslash = '\\';
       
   228         //TFileName oldfilepath;
       
   229         TInt pos = iDataFileName.LocateReverse(charvaldot);
       
   230 
       
   231         TInt lengthDeleted = maxLength - pos;
       
   232 
       
   233         iDataFileName.Delete(pos, lengthDeleted);
       
   234         
       
   235         if (iMimeType == KSisxMimeType)
       
   236             {
       
   237             _LIT16(KExt,".sisx");
       
   238             iExtn.Append(KExt);
       
   239             }
       
   240         if(iMimeType==KSisMimeType)
       
   241             {
       
   242             _LIT16(KExt,".sis");
       
   243             iExtn.Append(KExt);
       
   244             }
       
   245         if(iMimeType==KPipMimeType)
       
   246             {
       
   247             _LIT16(KExt,".pip");
       
   248             iExtn.Append(KExt);
       
   249             }
       
   250         if(iMimeType==KJadMIMEType)
       
   251             {
       
   252             _LIT16(KExt,".jad");
       
   253             iExtn.Append(KExt);
       
   254             }
       
   255         if(iMimeType==KJarMIMEType)
       
   256             {
       
   257             _LIT16(KExt,".jar");
       
   258             iExtn.Append(KExt);
       
   259             }
       
   260         if(iMimeType==KJavaMIMEType)
       
   261             {
       
   262             _LIT16(KExt,".jar");
       
   263             iExtn.Append(KExt);
       
   264             }
       
   265         iDataFileName.Append(iExtn);//file name with sisx extension
       
   266         TFileName newfilepath;
       
   267         newfilepath.Copy(iDataFileName);
       
   268         User::LeaveIfError(fm->Rename(oldfilepath, newfilepath));
       
   269         CleanupStack::PopAndDestroy(fm);
       
   270         CleanupStack::PopAndDestroy( &fs);
       
   271         //RDEBUG_2(" filename: %S", iDataFileName );
       
   272         }
   213     if (IsSISInstallFile(aMimeType) )
   273     if (IsSISInstallFile(aMimeType) )
   214         {
   274         {
   215         RFs fs;
   275         RFs fs;
   216         User::LeaveIfError(fs.Connect() );
   276         User::LeaveIfError(fs.Connect() );
   217         CleanupClosePushL(fs);
   277         CleanupClosePushL(fs);     
   218         ret = ResolveUidL(fs);
   278         ret = ResolveUidL(fs);
   219         CleanupStack::PopAndDestroy( &fs);
   279         CleanupStack::PopAndDestroy( &fs);
   220         }
   280         }
   221     RDEBUG8_2("CDeploymentComponentData::SetDataL() UID: (0x%x)", ret.iUid);
   281     RDEBUG8_2("CDeploymentComponentData::SetDataL() UID: (0x%x)", ret.iUid);
   222     return ret;
   282     return ret;
   224 
   284 
   225 TUid CDeploymentComponentData::SetDataL(const TFileName &aData,
   285 TUid CDeploymentComponentData::SetDataL(const TFileName &aData,
   226         const TDesC8& aMimeType)
   286         const TDesC8& aMimeType)
   227     {
   287     {
   228     RDEBUG_2("CDeploymentComponentData::SetDataL() TFileName: (%S)", &aData);
   288     RDEBUG_2("CDeploymentComponentData::SetDataL() TFileName: (%S)", &aData);
       
   289     
       
   290     _LIT(KNewPath, "c:\\private\\200267FB\\");
   229 
   291 
   230     TUid ret(TUid::Null());
   292     TUid ret(TUid::Null());
   231     iMimeType = aMimeType.Left(KMaxMimeLength) ;
   293     iMimeType = aMimeType.Left(KMaxMimeLength) ;
   232     RFs fs;
   294     RFs fs;
   233     User::LeaveIfError(fs.Connect() );
   295     User::LeaveIfError(fs.Connect() );
   234     CleanupClosePushL(fs);
   296     CleanupClosePushL(fs);
   235     CFileMan *fm = CFileMan::NewL(fs);
   297     CFileMan *fm = CFileMan::NewL(fs);
   236     CleanupStack::PushL(fm);
   298     CleanupStack::PushL(fm);
   237     TFileName fn;
   299     TFileName fn;
   238     fn.Copy(iDataFileName);
   300     fn.Copy(iDataFileName);
   239     User::LeaveIfError(fm->Copy(aData, fn) );
   301 
       
   302     RDEBUG("App Mgmt before copy start");
       
   303 
       
   304     
       
   305     TInt maxLength = iDataFileName.Length();
       
   306     TChar charvaldot = '.';
       
   307     TChar charvalslash = '\\';
       
   308     
       
   309     TInt pos = iDataFileName.LocateReverse(charvaldot);
       
   310     
       
   311     TInt lengthDeleted = maxLength-pos;
       
   312     
       
   313     iDataFileName.Delete(pos, lengthDeleted);
       
   314     
       
   315     TInt srcpos = aData.LocateReverse(charvaldot);
       
   316     
       
   317     TBuf<15> extn(aData.Mid(srcpos));
       
   318     
       
   319     iDataFileName.Append(extn);
       
   320     
       
   321     TFileName newfilepath;
       
   322     newfilepath.Copy(iDataFileName);
       
   323     
       
   324     User::LeaveIfError(fm->Move(aData,KNewPath()));
       
   325     
       
   326     TFileName oldfilepath(KNewPath());
       
   327     oldfilepath.Append(aData.Mid(aData.LocateReverse(charvalslash)));
       
   328     
       
   329     User::LeaveIfError(fm->Rename(oldfilepath, newfilepath));
       
   330    
       
   331     
       
   332     //User::LeaveIfError(fm->Copy(aData, fn) );
       
   333 
       
   334     RDEBUG("App Mgmt before copy End");
       
   335 
   240 
   336 
   241     if (IsSISInstallFile(aMimeType) )
   337     if (IsSISInstallFile(aMimeType) )
   242         {
   338         {
   243         ret = ResolveUidL(fs);
   339         ret = ResolveUidL(fs);
   244         }
   340         }