javamanager/javainstaller/installer/javasrc/com/nokia/mj/impl/installer/midp2/install/steps/PrepareInstallation.java
changeset 50 023eef975703
parent 21 2a9601315dfc
child 56 abc41079b313
--- a/javamanager/javainstaller/installer/javasrc/com/nokia/mj/impl/installer/midp2/install/steps/PrepareInstallation.java	Tue Jul 06 20:36:19 2010 +0300
+++ b/javamanager/javainstaller/installer/javasrc/com/nokia/mj/impl/installer/midp2/install/steps/PrepareInstallation.java	Fri Jul 09 16:35:45 2010 +0300
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 2008-2010 Nokia Corporation and/or its subsidiary(-ies).
 * All rights reserved.
 * This component and the accompanying materials are made available
 * under the terms of "Eclipse Public License v1.0"
@@ -37,6 +37,7 @@
 import com.nokia.mj.impl.installer.utils.SysUtil;
 import com.nokia.mj.impl.security.midp.authentication.AuthenticationModule;
 import com.nokia.mj.impl.security.midp.authentication.OcspSettings;
+import com.nokia.mj.impl.fileutils.FileURL;
 import com.nokia.mj.impl.utils.Uid;
 
 public class PrepareInstallation extends ExeStep
@@ -170,6 +171,11 @@
             {
                 aBall.iJarUrl = jarArg;
             }
+            else if (isFileUrl(jarArg))
+            {
+                aBall.iJarFilename = getFileFromUrl(jarArg);
+                Log.log("Jar " + aBall.iJarFilename + " from URL " + jarArg);
+            }
             else
             {
                 aBall.iJarFilename = jarArg;
@@ -181,6 +187,11 @@
             {
                 aBall.iJadUrl = jadArg;
             }
+            else if (isFileUrl(jadArg))
+            {
+                aBall.iJadFilename = getFileFromUrl(jadArg);
+                Log.log("Jad " + aBall.iJadFilename + " from URL " + jadArg);
+            }
             else
             {
                 aBall.iJadFilename = jadArg;
@@ -346,4 +357,36 @@
         Log.log("ocspSettings: " + ocspSettings);
         return ocspSettings;
     }
+
+    /**
+     * Returns true if given URL is a file URL, false otherwise.
+     */
+    private static boolean isFileUrl(String aUrl)
+    {
+        if (aUrl == null || aUrl.length() == 0)
+        {
+            return false;
+        }
+        return aUrl.toLowerCase().startsWith("file://");
+    }
+
+    /**
+     * Returns a file path from file URL.
+     *
+     * @throws InstallerException if URL is invalid.
+     */
+    private static String getFileFromUrl(String aUrl)
+    {
+        String filePath = null;
+        try
+        {
+            FileURL fileUrl = new FileURL(aUrl);
+            filePath = fileUrl.getFullPath();
+        }
+        catch (Throwable t)
+        {
+            InstallerException.internalError("Invalid file URL: " + aUrl, t);
+        }
+        return filePath;
+    }
 }