Author: jm
Date: 2012-10-05 15:00:44 -0700 (Fri, 05 Oct 2012)
New Revision: 30613

Modified:
   
core3/gui-distribution/trunk/launcher/src/main/java/org/cytoscape/launcher/internal/Launcher.java
   core3/gui-distribution/trunk/packaging/src/main/install4j/Cytoscape.install4j
Log:
Fixes #1499: Launcher no longer dies when run in a read-only directory

Modified: 
core3/gui-distribution/trunk/launcher/src/main/java/org/cytoscape/launcher/internal/Launcher.java
===================================================================
--- 
core3/gui-distribution/trunk/launcher/src/main/java/org/cytoscape/launcher/internal/Launcher.java
   2012-10-05 20:28:58 UTC (rev 30612)
+++ 
core3/gui-distribution/trunk/launcher/src/main/java/org/cytoscape/launcher/internal/Launcher.java
   2012-10-05 22:00:44 UTC (rev 30613)
@@ -9,13 +9,35 @@
 
        public static void main(String[] args) throws Exception {
                startupArguments = args;
+               setDefaultSystemProperties();
                createConfigurationDirectory();
                Main.main(args);
        }
        
+       private static void setDefaultSystemProperties() {
+               String userHome = System.getProperty("user.home");
+               if (System.getProperty("karaf.data") == null) {
+                       System.setProperty("karaf.data", join(File.separator, 
userHome, "CytoscapeConfiguration", "3", "karaf_data"));
+               }
+       }
+
+       private static String join(String separator, String... parts) {
+               StringBuilder builder = new StringBuilder();
+               boolean isFirst = true;
+               for (String part : parts) {
+                       if (!isFirst) {
+                               builder.append(separator);
+                       } else {
+                               isFirst = false;
+                       }
+                       builder.append(part);
+               }
+               return builder.toString();
+       }
+       
        private static void createConfigurationDirectory() {
                String userHome = System.getProperty("user.home");
-               File karafData = new File(userHome, String.format("%s%s%s", 
"CytoscapeConfiguration", File.separator, "3"));
+               File karafData = new File(join(File.separator, userHome, 
"CytoscapeConfiguration", "3"));
                karafData.mkdirs();
        }
 

Modified: 
core3/gui-distribution/trunk/packaging/src/main/install4j/Cytoscape.install4j
===================================================================
--- 
core3/gui-distribution/trunk/packaging/src/main/install4j/Cytoscape.install4j   
    2012-10-05 20:28:58 UTC (rev 30612)
+++ 
core3/gui-distribution/trunk/packaging/src/main/install4j/Cytoscape.install4j   
    2012-10-05 22:00:44 UTC (rev 30613)
@@ -66,7 +66,7 @@
           <versionLine x="20" y="40" text="version ${compiler:sys.version}" 
font="Arial" fontSize="8" fontColor="0,0,0" fontWeight="500" />
         </text>
       </splashScreen>
-      <java mainClass="org.cytoscape.launcher.internal.Launcher" 
vmParameters="-server  -Xss10M  -Xms128M -Xmx1G  -Dcom.sun.management.jmxremote 
&quot;-Dkaraf.instances=${launcher:sys.launcherDirectory}/framework/instances&quot;
  &quot; -Dkaraf.home=${launcher:sys.launcherDirectory}/framework&quot; 
&quot;-Dkaraf.base=${launcher:sys.launcherDirectory}/framework&quot;   &quot; 
-Dkaraf.data=${launcher:sys.launcherDirectory}/framework/data&quot;  &quot; 
-Djava.io.tmpdir=${launcher:sys.launcherDirectory}/framework/data/tmp&quot;  
&quot; 
-Djava.util.logging.config.file=${launcher:sys.launcherDirectory}/framework/etc/java.util.logging.properties&quot;
  -Dkaraf.startLocalConsole=false  -Dkaraf.startRemoteShell=false" arguments="" 
allowVMPassthroughParameters="true" preferredVM="" bundleRuntime="true">
+      <java mainClass="org.cytoscape.launcher.internal.Launcher" 
vmParameters="-Xss10M  -Xms128M -Xmx1G  -Dcom.sun.management.jmxremote 
&quot;-Dkaraf.instances=${launcher:sys.launcherDirectory}/framework/instances&quot;
  &quot; -Dkaraf.home=${launcher:sys.launcherDirectory}/framework&quot; 
&quot;-Dkaraf.base=${launcher:sys.launcherDirectory}/framework&quot; &quot; 
-Djava.util.logging.config.file=${launcher:sys.launcherDirectory}/framework/etc/java.util.logging.properties&quot;
  -Dkaraf.startLocalConsole=false  -Dkaraf.startRemoteShell=false" arguments="" 
allowVMPassthroughParameters="true" preferredVM="" bundleRuntime="true">
         <classPath>
           <scanDirectory location="." failOnError="false" />
           <directory location="lib" failOnError="false" />

-- 
You received this message because you are subscribed to the Google Groups 
"cytoscape-cvs" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/cytoscape-cvs?hl=en.

Reply via email to