Changed PkgName type from DPL::Optional<DPL::String> to DPL::String. PART 2
authorJan Olszak <j.olszak@samsung.com>
Thu, 6 Dec 2012 15:35:54 +0000 (16:35 +0100)
committerGerrit Code Review <gerrit2@kim11>
Wed, 2 Jan 2013 06:19:01 +0000 (15:19 +0900)
[Issue#] PkgName could have been NULL.
[Bug] N/A
[Cause] N/A
[Solution] Changed Pkgname type, changed api methods.
[Verification] Build commons, plugins, installer, wrt. Run all tests.

Change-Id: Id244ec00bd7da12bf106c009d65e0bc2e732dc71

src/configuration_parser/WidgetConfigurationManager.cpp
src/jobs/widget_install/job_widget_install.cpp
src/jobs/widget_install/task_certificates.cpp
src/jobs/widget_install/task_encrypt_resource.cpp
src/jobs/widget_install/task_file_manipulation.cpp
src/jobs/widget_install/task_manifest_file.cpp
src/jobs/widget_install/task_smack.cpp
src/jobs/widget_install/task_widget_config.cpp
src/jobs/widget_uninstall/task_smack.cpp
src/pkg-manager/backendlib.cpp
src/wrt-installer/wrt_installer_api.cpp

index 54b458c..94a7c54 100644 (file)
@@ -189,14 +189,10 @@ bool WidgetConfigurationManager::locateAndParseConfigurationFile(
     }
 
     if (!!configInfo.tizenId) {
-        if (!pWidgetConfigInfo.pkgname) {
-            pWidgetConfigInfo.pkgname = configInfo.tizenId;
-        } else {
-            if (pWidgetConfigInfo.pkgname != configInfo.tizenId) {
-                *pErrCode = WRT_WM_ERR_INVALID_ARCHIVE;
-                LogDebug("Invalid archive - Tizen ID not same error");
-                return false;
-            }
+        if (pWidgetConfigInfo.pkgName != *configInfo.tizenId) {
+            *pErrCode = WRT_WM_ERR_INVALID_ARCHIVE;
+            LogDebug("Invalid archive - Tizen ID not same error");
+            return false;
         }
     }
 
index ad57eb7..ce93dcd 100644 (file)
@@ -354,7 +354,7 @@ bool JobWidgetInstall::setTizenId(
             regfree(&reg);
             return false;
         }
-        m_installerContext.widgetConfig.pkgname = configInfo.tizenId;
+        m_installerContext.widgetConfig.pkgName = *configInfo.tizenId;
 
     } else {
         WidgetPkgName tizenId = WidgetDAOReadOnly::generateTizenId();
@@ -373,19 +373,19 @@ bool JobWidgetInstall::setTizenId(
                 break;
             }
 
-            m_installerContext.widgetConfig.pkgname = tizenId;
+            m_installerContext.widgetConfig.pkgName = tizenId;
         }
         LogInfo("tizen_id name was generated by WRT: " << tizenId);
         // send start signal of pkgmgr
         getInstallerStruct().pkgmgrInterface->setPkgname(DPL::ToUTF8String(
-                    *m_installerContext.widgetConfig.pkgname));
+                    m_installerContext.widgetConfig.pkgName));
         getInstallerStruct().pkgmgrInterface->sendSignal(
                 PKGMGR_START_KEY,
                 PKGMGR_START_INSTALL);
     }
     regfree(&reg);
 
-    LogInfo("Tizen Id : " << m_installerContext.widgetConfig.pkgname);
+    LogInfo("Tizen Id : " << m_installerContext.widgetConfig.pkgName);
     LogInfo("W3C Widget GUID : " << m_installerContext.widgetConfig.guid);
     return true;
 }
@@ -394,7 +394,7 @@ void JobWidgetInstall::configureWidgetLocation(const std::string & widgetPath,
                                                const std::string& tempPath)
 {
     m_installerContext.locations =
-        WidgetLocation(DPL::ToUTF8String(*m_installerContext.widgetConfig.pkgname),
+        WidgetLocation(DPL::ToUTF8String(m_installerContext.widgetConfig.pkgName),
                 widgetPath, tempPath,
                 m_installerContext.widgetConfig.packagingType,
                 m_installerContext.locationType);
@@ -412,7 +412,7 @@ JobWidgetInstall::ConfigureResult JobWidgetInstall::ConfigureInstallation(
     if (!setTizenId(configData, update, m_jobStruct.m_preload)) {
         return ConfigureResult::Failed;
     } else {
-        LogInfo("Tizen Id: " << m_installerContext.widgetConfig.pkgname);
+        LogInfo("Tizen Id: " << m_installerContext.widgetConfig.pkgName);
 
         configureWidgetLocation(widgetSource, tempPath);
     }
@@ -446,19 +446,14 @@ JobWidgetInstall::ConfigureResult JobWidgetInstall::checkWidgetUpdate(
         LogInfo("Widget info exists. PkgName: " <<
                 update.existingWidgetInfo.pkgname);
 
-        DPL::OptionalString pkgname = update.existingWidgetInfo.pkgname;
-
-        if(pkgname.IsNull()) {
-            LogInfo("But package name doesn't exist");
-            return ConfigureResult::Failed;
-        }
+        WidgetPkgName pkgname = update.existingWidgetInfo.pkgname;
 
         LogInfo("Widget model exists. package name: " << pkgname);
 
         // Check running state
         int retval = APP_MANAGER_ERROR_NONE;
         bool isRunning = false;
-        retval = app_manager_is_running(DPL::ToUTF8String(*pkgname).c_str(), &isRunning);
+        retval = app_manager_is_running(DPL::ToUTF8String(pkgname).c_str(), &isRunning);
         if (APP_MANAGER_ERROR_NONE != retval) {
             LogError("Fail to get running state");
             return ConfigureResult::Failed;
@@ -479,7 +474,7 @@ JobWidgetInstall::ConfigureResult JobWidgetInstall::checkWidgetUpdate(
             }
         }
 
-        m_installerContext.widgetConfig.pkgname = pkgname;
+        m_installerContext.widgetConfig.pkgName = pkgname;
         OptionalWidgetVersion existingVersion;
         existingVersion = update.existingWidgetInfo.existingVersion;
         OptionalWidgetVersion incomingVersion = update.incomingVersion;
@@ -665,7 +660,7 @@ WidgetUpdateInfo JobWidgetInstall::detectWidgetUpdate(
             widgetGUID,
             widgetVersion,
             WidgetUpdateInfo::ExistingWidgetInfo(
-                *dao.getPkgname(), dao.getVersion()));
+                dao.getPkgName(), dao.getVersion()));
     }
     Catch(WidgetDAOReadOnly::Exception::WidgetNotExist)
     {
@@ -718,7 +713,7 @@ void JobWidgetInstall::SendFinishedSuccess()
     //inform widget info
     JobWidgetInstall::displayWidgetInfo();
 
-    DPL::OptionalString & tizenId = m_installerContext.widgetConfig.pkgname;
+    WidgetPkgName& tizenId = m_installerContext.widgetConfig.pkgName;
 
     // send signal of pkgmgr
     getInstallerStruct().pkgmgrInterface->sendSignal(
@@ -727,7 +722,7 @@ void JobWidgetInstall::SendFinishedSuccess()
 
     LogDebug("Call widget install successfinishedCallback");
     getInstallerStruct().finishedCallback(getInstallerStruct().userParam,
-            tizenId.IsNull() ? "" : DPL::ToUTF8String(*tizenId), Exceptions::Success);
+            DPL::ToUTF8String(tizenId), Exceptions::Success);
 }
 
 void JobWidgetInstall::SendFinishedFailure()
@@ -738,7 +733,7 @@ void JobWidgetInstall::SendFinishedFailure()
 
     LogError("Error in installation step: " << m_exceptionCaught);
     LogError("Message: " << m_exceptionMessage);
-    DPL::OptionalString & tizenId = m_installerContext.widgetConfig.pkgname;
+    WidgetPkgName & tizenId = m_installerContext.widgetConfig.pkgName;
 
     LogDebug("Call widget install failure finishedCallback");
 
@@ -748,7 +743,7 @@ void JobWidgetInstall::SendFinishedFailure()
                 PKGMGR_END_FAILURE);
 
     getInstallerStruct().finishedCallback(getInstallerStruct().userParam,
-            tizenId.IsNull() ? "" : DPL::ToUTF8String(*tizenId), m_exceptionCaught);
+            DPL::ToUTF8String(tizenId), m_exceptionCaught);
 }
 
 void JobWidgetInstall::SaveExceptionData(const Jobs::JobExceptionBase &e)
@@ -763,18 +758,18 @@ void JobWidgetInstall::displayWidgetInfo()
 
     std::ostringstream out;
     WidgetLocalizedInfo localizedInfo =
-        W3CFileLocalization::getLocalizedInfo(*dao.getPkgname());
+        W3CFileLocalization::getLocalizedInfo(dao.getPkgName());
 
     out << std::endl <<
         "===================================== INSTALLED WIDGET INFO ========="\
         "============================";
     out << std::endl << "Name:                        " << localizedInfo.name;
-    out << std::endl << "PkgName:                     " << dao.getPkgname();
+    out << std::endl << "PkgName:                     " << dao.getPkgName();
     WidgetSize size = dao.getPreferredSize();
     out << std::endl << "Width:                       " << size.width;
     out << std::endl << "Height:                      " << size.height;
     out << std::endl << "Start File:                  " <<
-        W3CFileLocalization::getStartFile(*dao.getPkgname());
+        W3CFileLocalization::getStartFile(dao.getPkgName());
     out << std::endl << "Version:                     " << dao.getVersion();
     out << std::endl << "Licence:                     " <<
         localizedInfo.license;
@@ -789,9 +784,8 @@ void JobWidgetInstall::displayWidgetInfo()
         dao.isDistributorSigned();
     out << std::endl << "Widget trusted:              " << dao.isTrusted();
 
-    OptionalWidgetIcon icon = W3CFileLocalization::getIcon(*dao.getPkgname());
-    DPL::OptionalString iconSrc =
-        !!icon ? icon->src : DPL::OptionalString::Null;
+    OptionalWidgetIcon icon = W3CFileLocalization::getIcon(dao.getPkgName());
+    DPL::OptionalString iconSrc = !!icon ? icon->src : DPL::OptionalString::Null;
     out << std::endl << "Icon:                        " << iconSrc;
 
     out << std::endl << "Preferences:";
index 4e41048..92fc86f 100755 (executable)
@@ -61,7 +61,7 @@ void TaskCertificates::StepSetCertiInfo()
 
     if ((pkgmgr_installer_save_certinfo(
                     const_cast<char*>(DPL::ToUTF8String(
-                            *m_context.widgetConfig.pkgname).c_str()),
+                            m_context.widgetConfig.pkgName).c_str()),
                     m_pkgHandle)) < 0) {
         LogError("pkgmgrInstallerSaveCertinfo fail");
         ThrowMsg(Exceptions::SetCertificateInfoFailed,
@@ -159,7 +159,7 @@ void TaskCertificates::StepAbortCertiInfo()
 {
     if ((pkgmgr_installer_delete_certinfo(
                     const_cast<char*>(DPL::ToUTF8String(
-                            *m_context.widgetConfig.pkgname).c_str()))) < 0) {
+                            m_context.widgetConfig.pkgName).c_str()))) < 0) {
         LogError("pkgmgr_installer_delete_certinfo fail");
     }
 }
index 2ea97ee..71752e5 100644 (file)
@@ -78,8 +78,8 @@ void TaskEncryptResource::StepEncryptResource()
 {
     LogDebug("Step Encrypt resource");
     m_resEnc = new ResourceEncryptor;
-    m_resEnc->CreateEncryptionKey(DPL::ToUTF8String(*m_context.
-                widgetConfig.pkgname));
+    m_resEnc->CreateEncryptionKey(DPL::ToUTF8String(m_context.
+                widgetConfig.pkgName));
 
     EncryptDirectory(m_context.locations->getTemporaryRootDir());
 }
index a41239e..79edb47 100644 (file)
@@ -121,10 +121,6 @@ TaskFileManipulation::TaskFileManipulation(InstallerContext& context) :
 void TaskFileManipulation::StepCreateDirs()
 {
     std::string widgetPath;
-    DPL::OptionalString pkgname = m_context.widgetConfig.pkgname;
-    if (pkgname.IsNull()) {
-        ThrowMsg(Exceptions::InternalError, "No Package name exists.");
-    }
 
     widgetPath = m_context.locations->getPackageInstallationDir();
 
@@ -236,10 +232,6 @@ void TaskFileManipulation::StepCreateShareDir()
 void TaskFileManipulation::StepRenamePath()
 {
     std::string instDir;
-    DPL::OptionalString pkgname = m_context.widgetConfig.pkgname;
-    if (pkgname.IsNull()) {
-        ThrowMsg(Exceptions::InternalError, "No Package name exists.");
-    }
 
     if (m_context.widgetConfig.packagingType == PKG_TYPE_HYBRID_WEB_APP) {
         instDir = m_context.locations->getPackageInstallationDir();
index 908109a..ba3b2ae 100755 (executable)
@@ -312,12 +312,9 @@ DPL::String TaskManifestFile::getIconTargetFilename(
         const DPL::String& languageTag) const
 {
     DPL::OStringStream filename;
-    DPL::Optional<DPL::String> pkgname = m_context.widgetConfig.pkgname;
-    if (pkgname.IsNull()) {
-        ThrowMsg(Exceptions::InternalError, "No Package name exists.");
-    }
+    WidgetPkgName pkgname = m_context.widgetConfig.pkgName;
 
-    filename << DPL::ToUTF8String(*pkgname).c_str();
+    filename << DPL::ToUTF8String(pkgname).c_str();
 
     if (!languageTag.empty()) {
         DPL::OptionalString tag = getLangTag(languageTag); // translate en -> en_US etc
@@ -361,7 +358,7 @@ void TaskManifestFile::updateAilInfo()
 {
     // Update ail for desktop
     std::string cfgPkgname =
-        DPL::ToUTF8String(*m_context.widgetConfig.pkgname);
+        DPL::ToUTF8String(m_context.widgetConfig.pkgName);
     const char* pkgname = cfgPkgname.c_str();
 
     LogDebug("Update ail desktop : " << pkgname );
@@ -396,7 +393,7 @@ void TaskManifestFile::backupIconFiles()
 
     std::list<std::string> fileList;
     getFileList(GlobalConfig::GetUserWidgetDesktopIconPath(), fileList);
-    std::string pkgname = DPL::ToUTF8String(*m_context.widgetConfig.pkgname);
+    std::string pkgname = DPL::ToUTF8String(m_context.widgetConfig.pkgName);
 
     FOREACH(it, fileList)
     {
@@ -465,7 +462,7 @@ void TaskManifestFile::getFileList(const char* path,
 
 void TaskManifestFile::stepGenerateManifest()
 {
-    DPL::String pkgname = *m_context.widgetConfig.pkgname;
+    WidgetPkgName pkgname = m_context.widgetConfig.pkgName;
     manifest_name = pkgname + L".xml";
     manifest_file += L"/tmp/" + manifest_name;
 
@@ -594,12 +591,9 @@ void TaskManifestFile::setWidgetName(Manifest & manifest, UiApplication & uiApp)
         generateWidgetName(manifest, uiApp, DPL::OptionalString::Null, name, defaultNameSaved);
     }
     //appid
-    DPL::String pkgname;
-    if(!!m_context.widgetConfig.pkgname)
-    {
-        pkgname = *m_context.widgetConfig.pkgname;
-        uiApp.setAppid(pkgname);
-    }
+    WidgetPkgName pkgname = m_context.widgetConfig.pkgName;
+    uiApp.setAppid(pkgname);
+
 
     //extraid
     if(!!m_context.widgetConfig.guid) {
@@ -644,11 +638,6 @@ void TaskManifestFile::generateWidgetName(Manifest & manifest, UiApplication &ui
 
 void TaskManifestFile::setWidgetIcons(UiApplication & uiApp)
 {
-    DPL::OptionalString pkgname = m_context.widgetConfig.pkgname;
-    if (pkgname.IsNull()) {
-        ThrowMsg(Exceptions::InternalError, "No Package name exists.");
-    }
-
     //TODO this file will need to be updated when user locale preferences
     //changes.
     bool defaultIconSaved = false;
@@ -715,10 +704,8 @@ void TaskManifestFile::generateWidgetIcon(UiApplication & uiApp, const DPL::Opti
 
 void TaskManifestFile::setWidgetManifest(Manifest & manifest)
 {
-    if(!!m_context.widgetConfig.pkgname)
-    {
-        manifest.setPackage(*m_context.widgetConfig.pkgname);
-    }
+    manifest.setPackage(m_context.widgetConfig.pkgName);
+
     if(!!m_context.widgetConfig.version)
     {
         manifest.setVersion(*m_context.widgetConfig.version);
index 7c36c65..b468d3b 100644 (file)
@@ -53,10 +53,9 @@ void TaskSmack::Step()
             devcaps << utf8;
         }
     }
-    DPL::OptionalString pkgName = m_context.widgetConfig.Pkgname;
-    Assert(!pkgName.IsNull() && "widget doesn't have a pkg name");
+    WidgetPkgName pkgName = m_context.widgetConfig.pkgName;
     int result = handle_access_control_conf_forWAC(
-                     DPL::ToUTF8String(*pkgName).c_str(),
+                     DPL::ToUTF8String(pkgName).c_str(),
                      devcaps.str().c_str(),
                      OPERATION_INSTALL);
     Assert(result==PC_OPERATION_SUCCESS && "access control setup failed");
index bf5301a..eefaf0a 100644 (file)
@@ -823,14 +823,10 @@ bool TaskWidgetConfig::fillWidgetConfig(WrtDB::WidgetRegisterInfo& pWidgetConfig
         }
     }
     if (!!configInfo.tizenId) {
-        if (!pWidgetConfigInfo.pkgname) {
-            pWidgetConfigInfo.pkgname = configInfo.tizenId;
-        } else {
-            if (pWidgetConfigInfo.pkgname != configInfo.tizenId) {
-                LogError("Invalid archive - Tizen ID not same error");
-                return false;
-            }
-        }
+       if (pWidgetConfigInfo.pkgName != *configInfo.tizenId) {
+           LogError("Invalid archive - Tizen ID not same error");
+           return false;
+       }
     }
     if (!!configInfo.version) {
         if (!pWidgetConfigInfo.version) {
index c6c1a57..23d2df6 100644 (file)
@@ -43,11 +43,10 @@ void TaskSmack::Step()
 #ifdef WRT_SMACK_ENABLED
     try {
       WrtDB::WidgetDAOReadOnly dao(m_context.locations->getPkgname());
-      DPL::OptionalString pkgName = dao.getPkgname();
-      Assert(!pkgName.IsNull() && "widget doesn't have a pkg name");
+      WidgetPkgName pkgName = dao.getPkgName();
       const char *devCap = "";
       int result = handle_access_control_conf_forWAC(
-                       DPL::ToUTF8String(*pkgName).c_str(),
+                       DPL::ToUTF8String(pkgName).c_str(),
                        NULL,
                        OPERATION_UNINSTALL);
       Assert(result==PC_OPERATION_SUCCESS && "access control setup failed");
index 27af8cb..685f371 100644 (file)
@@ -91,7 +91,7 @@ static int pkg_plugin_get_installed_apps_list(const char * /*category*/,
 
 
     WrtDB::WrtDatabase::attachToThreadRO();
-    WidgetPkgNameList pkgnameslList = WidgetDAOReadOnly::getPkgnameList();
+    WidgetPkgNameList_TEMPORARY_API pkgnameslList = WidgetDAOReadOnly::getPkgnameList_TEMPORARY_API();
     *count = 0;
 
     FOREACH(iterator, pkgnameslList) {
@@ -106,7 +106,7 @@ static int pkg_plugin_get_installed_apps_list(const char * /*category*/,
             pkg_last->next = pkg_info;
         }
 
-        WidgetPkgName pkgname = **iterator;
+        WidgetPkgName pkgname = *iterator;
         WidgetDAOReadOnly widget(pkgname);
         strncpy(pkg_info->pkg_type, "wgt", PKG_TYPE_STRING_LEN_MAX);
         snprintf(pkg_info->pkg_name, PKG_NAME_STRING_LEN_MAX, "%s",
index d643991..e481f2f 100755 (executable)
@@ -599,7 +599,7 @@ extern "C"
 
             WidgetGUID widget_guid = DPL::FromUTF8String(guid);
             WrtDB::WidgetDAOReadOnly dao(widget_guid);
-            pkgname = DPL::ToUTF8String(*dao.getPkgname());
+            pkgname = DPL::ToUTF8String(dao.getPkgName());
             return WRT_SUCCESS;
         }
         catch (WidgetDAOReadOnly::Exception::WidgetNotExist)