Author: scooter
Date: 2012-07-10 11:48:10 -0700 (Tue, 10 Jul 2012)
New Revision: 29822

Added:
   core3/gui-distribution/trunk/assembly/src/main/bin/Cytoscape.vmoptions
   core3/gui-distribution/trunk/assembly/src/main/bin/gen_vmoptions.bat
   core3/gui-distribution/trunk/assembly/src/main/bin/gen_vmoptions.sh
Modified:
   core3/gui-distribution/trunk/assembly/src/main/bin/cytoscape.bat
   core3/gui-distribution/trunk/assembly/src/main/bin/cytoscape.sh
   core3/gui-distribution/trunk/assembly/src/main/descriptors/config-dev.xml
   core3/gui-distribution/trunk/assembly/src/main/descriptors/config-unix.xml
   core3/gui-distribution/trunk/assembly/src/main/descriptors/config-windows.xml
Log:
Add support for memory sizing


Added: core3/gui-distribution/trunk/assembly/src/main/bin/Cytoscape.vmoptions
===================================================================
--- core3/gui-distribution/trunk/assembly/src/main/bin/Cytoscape.vmoptions      
                        (rev 0)
+++ core3/gui-distribution/trunk/assembly/src/main/bin/Cytoscape.vmoptions      
2012-07-10 18:48:10 UTC (rev 29822)
@@ -0,0 +1 @@
+4937M

Modified: core3/gui-distribution/trunk/assembly/src/main/bin/cytoscape.bat
===================================================================
--- core3/gui-distribution/trunk/assembly/src/main/bin/cytoscape.bat    
2012-07-10 18:06:42 UTC (rev 29821)
+++ core3/gui-distribution/trunk/assembly/src/main/bin/cytoscape.bat    
2012-07-10 18:48:10 UTC (rev 29822)
@@ -3,8 +3,29 @@
 set KARAF_TITLE=Cytoscape
 set DEBUG_PORT=12345
 
+:: Create the Cytoscape.vmoptions file, if it doesn't exist.
+IF EXIST "Cytoscape.vmoptions" GOTO vmoptionsFileExists
+CALL gen_vmoptions.bat
+:vmoptionsFileExists
+
+
+IF EXIST "Cytoscape.vmoptions" GOTO itIsThere
+; Run with defaults:
+echo "*** Missing Cytoscape.vmoptions, falling back to using defaults!"
 set JAVA_MAX_MEM=1550M
+GOTO setDebugOpts
 
+:: We end up here if we have a Cytoscape.vmoptions file:
+:itIsThere
+:: Read max memory
+setLocal EnableDelayedExpansion
+for /f "tokens=* delims= " %%a in (Cytoscape.vmoptions) do (
+set /a N+=1
+set opt!N!=%%a
+)
+set JAVA_MAX_MEM=!opt1!
+
+:setDebugOpts
 set JAVA_DEBUG_OPTS=-Xdebug -Xnoagent -Djava.compiler=NONE 
-Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=%DEBUG_PORT%
 set PWD=%~dp0
 set KARAF_OPTS=-Xss10M -Duser.dir="%PWD:\=\\%" 
-splash:CytoscapeSplashScreen.png
@@ -91,4 +112,5 @@
     set JAVA=%JAVA_HOME%\bin\java
 :END
 
+:: This is probably wrong.  We don't really want the user to be in this 
directory, do we?
 framework/bin/karaf %1 %2 %3 %4 %5 %6 %7 %8

Modified: core3/gui-distribution/trunk/assembly/src/main/bin/cytoscape.sh
===================================================================
--- core3/gui-distribution/trunk/assembly/src/main/bin/cytoscape.sh     
2012-07-10 18:06:42 UTC (rev 29821)
+++ core3/gui-distribution/trunk/assembly/src/main/bin/cytoscape.sh     
2012-07-10 18:48:10 UTC (rev 29822)
@@ -1,15 +1,37 @@
-#!/bin/bash
+#!/bin/sh
+#
+# Run cytoscape from a jar file
+# This script is a UNIX-only (i.e. Linux, Mac OS, etc.) version
+#-------------------------------------------------------------------------------
 
 DEBUG_PORT=12345
 
-cd $(dirname $0)
+script_path="$(dirname -- $0)"
+if [ -h $script_path ]; then
+       script_path="$(readlink $script_path)"
+fi
 
-export JAVA_MAX_MEM=1550M
-
 export JAVA_DEBUG_OPTS="-Xdebug -Xnoagent -Djava.compiler=NONE 
-Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=${DEBUG_PORT}"
 if [ `uname` = "Darwin" ]; then
        CYTOSCAPE_MAC_OPTS="-Xdock:icon=cytoscape_logo_512.png"
 fi
+
+#vm_options_path=$HOME/.cytoscape
+vm_options_path=$script_path
+
+# Attempt to generate Cytoscape.vmoptions if it doesn't exist!
+if [ ! -e "$vm_options_path/Cytoscape.vmoptions"  -a  -x 
"$script_path/gen_vmoptions.sh" ]; then
+    "$script_path/gen_vmoptions.sh"
+fi
+
+if [ -r $vm_options_path/Cytoscape.vmoptions ]; then
+               export JAVA_MAX_MEM=`cat $vm_options_path/Cytoscape.vmoptions`
+else # Just use sensible defaults.
+    echo '*** Missing Cytoscape.vmoptions, falling back to using defaults!'
+               # Initialize MAX_MEM to something reasonable
+               export JAVA_MAX_MEM=1550M
+fi
+
 PWD=$(pwd) 
 # The user working directory needs to be explecitly set in -Duser.dir to 
current
 # working directory since KARAF changes it to the framework directory. There
@@ -17,4 +39,4 @@
 # working directory to framework is not known.
 export KARAF_OPTS="-Xss10M -Duser.dir=$PWD -splash:CytoscapeSplashScreen.png 
$CYTOSCAPE_MAC_OPTS"
 
-framework/bin/karaf "$@"
+$script_path/framework/bin/karaf "$@"

Added: core3/gui-distribution/trunk/assembly/src/main/bin/gen_vmoptions.bat
===================================================================
--- core3/gui-distribution/trunk/assembly/src/main/bin/gen_vmoptions.bat        
                        (rev 0)
+++ core3/gui-distribution/trunk/assembly/src/main/bin/gen_vmoptions.bat        
2012-07-10 18:48:10 UTC (rev 29822)
@@ -0,0 +1,47 @@
+@echo off
+
+:: Generates the Cytoscape.vmoptions file based on whether
+:: we're dealing with a 32 bit or 64 bit JVM.
+
+:: Create the .cytoscape directory if it doesn't already exist
+;if exist "%HOMEPATH%\.cytoscape" goto dot_cytoscape_exists
+;mkdir "%HOMEPATH%\.cytoscape"
+;:dot_cytoscape_exists
+
+set physmem=768
+set mem=768
+if exist findmem.out del findmem.out
+systeminfo | find "Total Physical Memory" > findmem.out
+if %ERRORLEVEL% NEQ 0 GOTO Javatest
+for /f "tokens=4" %%i in (findmem.out) do set physmem=%%i
+set physmem=%physmem:,=%
+
+if %physmem% GTR 1536 set mem=1024
+if %physmem% GTR 2048 set mem=1536
+if %physmem% GTR 3072 set /a mem=%physmem%-1024
+REM if %physmem% GTR 4096 set mem=3072
+REM if %physmem% GTR 9216 set mem=4096
+
+:Javatest
+       if exist findstr.out del findstr.out
+       java -version 2>&1 | findstr /I 64-Bit > findstr.out
+       if %ERRORLEVEL% NEQ 0 GOTO Nojava
+       for /f %%i in ('dir /b findstr.out') do if %%~zi equ 0 goto 32bit
+
+:64bit
+       REM echo "64 bit %mem% MB"
+       echo %mem%M  >>Cytoscape.vmoptions
+       goto End
+
+:32bit
+       REM echo "32 bit %mem% MB"
+       REM Some java versions can only support 1400MB
+       if %mem% GTR 1400 set mem=1400
+       echo %mem%M >>Cytoscape.vmoptions
+
+:Nojava
+       echo ERROR: Can't find java executable
+
+:End
+       del findstr.out
+       del findmem.out

Added: core3/gui-distribution/trunk/assembly/src/main/bin/gen_vmoptions.sh
===================================================================
--- core3/gui-distribution/trunk/assembly/src/main/bin/gen_vmoptions.sh         
                (rev 0)
+++ core3/gui-distribution/trunk/assembly/src/main/bin/gen_vmoptions.sh 
2012-07-10 18:48:10 UTC (rev 29822)
@@ -0,0 +1,43 @@
+#!/bin/sh
+# Generates the Cytoscape.vmoptions file
+
+script_path="$(dirname -- $0)"
+
+#vm_options_path="$HOME/.cytoscape"
+vm_options_path=$script_path
+
+if [ ! -e $vm_options_path ]; then
+    /bin/mkdir $vm_options_path
+fi
+
+# Determine amount of physical memory present:
+if [ `uname` = "Darwin" ]; then
+    phys_mem=`sysctl -a | grep 'hw.memsize =' | sed 's/[ ][ ][ ]*/ /g' | cut 
-f 3 -d ' '`
+    phys_mem=$((phys_mem / 1024 / 1024)) # Convert from B to MiB
+else # We assume Linux
+    phys_mem=`cat /proc/meminfo | grep 'MemTotal:' | sed 's/[ ][ ][ ]*/ /g' | 
cut -f 2 -d ' '`
+    phys_mem=$((phys_mem / 1024)) # Convert from KiB to MiB
+fi
+
+# Now we know the amount of physical memory, but we don't want to try to use 
it all
+mem=768
+if [ $phys_mem -gt 3071 ]; then 
+    mem=$((phys_mem-1024))
+elif [ $phys_mem -gt 2047 ]; then 
+    mem=1536
+elif [ $phys_mem -gt 1535 ]; then 
+    mem=1024
+fi
+
+if `java -version 2>&1 | grep -- 64-Bit > /dev/null`; then # We have a 64 bit 
JVM.
+    echo ${mem}M      >> "$vm_options_path/Cytoscape.vmoptions"
+else # Assume a 32 bit JVM.
+    # Truncate memory setting at 1550 MiB:
+    if [ $mem -gt 1550 ]; then
+        mem=1550
+    fi
+
+    echo ${mem}M      >> "$vm_options_path/Cytoscape.vmoptions"
+fi
+
+exit 0


Property changes on: 
core3/gui-distribution/trunk/assembly/src/main/bin/gen_vmoptions.sh
___________________________________________________________________
Added: svn:executable
   + *

Modified: 
core3/gui-distribution/trunk/assembly/src/main/descriptors/config-dev.xml
===================================================================
--- core3/gui-distribution/trunk/assembly/src/main/descriptors/config-dev.xml   
2012-07-10 18:06:42 UTC (rev 29821)
+++ core3/gui-distribution/trunk/assembly/src/main/descriptors/config-dev.xml   
2012-07-10 18:48:10 UTC (rev 29822)
@@ -15,6 +15,9 @@
         <scripts>
             <script>cytoscape.sh</script>
             <script>cytoscape.bat</script>
+            <script>gen_vmoptions.sh</script>
+            <script>gen_vmoptions.bat</script>
+            <script>Cytoscape.vmoptions</script>
         </scripts>
     </cytoscape>
-</config>
\ No newline at end of file
+</config>

Modified: 
core3/gui-distribution/trunk/assembly/src/main/descriptors/config-unix.xml
===================================================================
--- core3/gui-distribution/trunk/assembly/src/main/descriptors/config-unix.xml  
2012-07-10 18:06:42 UTC (rev 29821)
+++ core3/gui-distribution/trunk/assembly/src/main/descriptors/config-unix.xml  
2012-07-10 18:48:10 UTC (rev 29822)
@@ -13,6 +13,8 @@
     <cytoscape>
         <scripts>
             <script>cytoscape.sh</script>
+            <script>gen_vmoptions.sh</script>
+            <script>Cytoscape.vmoptions</script>
         </scripts>
     </cytoscape>
-</config>
\ No newline at end of file
+</config>

Modified: 
core3/gui-distribution/trunk/assembly/src/main/descriptors/config-windows.xml
===================================================================
--- 
core3/gui-distribution/trunk/assembly/src/main/descriptors/config-windows.xml   
    2012-07-10 18:06:42 UTC (rev 29821)
+++ 
core3/gui-distribution/trunk/assembly/src/main/descriptors/config-windows.xml   
    2012-07-10 18:48:10 UTC (rev 29822)
@@ -15,6 +15,9 @@
         <scripts>
             <script>cytoscape.bat</script>
             <script>cytoscape.sh</script>
+            <script>gen_vmoptions.sh</script>
+            <script>gen_vmoptions.bat</script>
+            <script>Cytoscape.vmoptions</script>
         </scripts>
     </cytoscape>
 </config>

-- 
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