Cleanup in JavaRelease: javaHome/jreHome/jdkHome. development
authorJan Vrany <jan.vrany@fit.cvut.cz>
Wed, 23 Jan 2013 12:31:33 +0000
branchdevelopment
changeset 1988 0fcf5a5dcb66
parent 1963 3277db94a67c
child 1989 131b7459fdab
child 1996 0edecf17c815
Cleanup in JavaRelease: javaHome/jreHome/jdkHome.
JavaRelease.st
--- a/JavaRelease.st	Mon Jan 21 15:15:23 2013 +0100
+++ b/JavaRelease.st	Wed Jan 23 12:31:33 2013 +0000
@@ -279,8 +279,13 @@
     ].
     ^bundle
 
+    "
+        Java release codeBundle
+    "
+
     "Created: / 12-01-2013 / 15:50:58 / Jan Vrany <jan.vrany@fit.cvut.cz>"
     "Modified: / 15-01-2013 / 16:44:34 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    "Modified (comment): / 23-01-2013 / 12:25:28 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 !
 
 javaExtDirs
@@ -316,8 +321,14 @@
 !
 
 javaHome
+    "Answer a Java home. This is either path to JRE (no JDK is found) or to 
+     full JDK (if JDK is installed)
 
-    "Answer a Java home"
+     If you want path to either JRE or JDK, use
+     #jreHome
+     #jdkHome
+
+     "
 
     javaHome isNil ifTrue:[
         javaHome := self searchForJavaHome.
@@ -330,6 +341,7 @@
 
     "Created: / 27-10-2010 / 18:59:35 / Jan Vrany <jan.vrany@fit.cvut.cz>"
     "Modified: / 27-07-2012 / 00:24:17 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    "Modified (comment): / 23-01-2013 / 12:19:45 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 !
 
 javaHomeOrNil
@@ -374,6 +386,25 @@
     ^ self subclassResponsibility
 !
 
+jdkHome
+
+    "Answers the directory where the JDK lives or nil, if no JDK is found"
+
+    | jdkHome |
+
+    self javaHome isNil ifTrue:[ ^ nil ].
+
+    ^((jdkHome := self javaHome) asFilename / 'jre') exists
+        ifTrue:[jdkHome]
+        ifFalse:[nil].
+
+    "
+        Java release searchForJavaHome; jdkHome
+    "
+
+    "Created: / 23-01-2013 / 12:20:48 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
 jreHome
 
     "Answers the directory where the JRE lives"
@@ -633,7 +664,7 @@
     bundle := nil.
     classPath := OrderedCollection new.
     jreHome := self jreHome asFilename.
-    jdkHome := self javaHome asFilename.
+    jdkHome := self jdkHome asFilename.
     jreHome isNil ifTrue:[ ^ #() ].
     "Ensure, that rt.jar is first"
     classPath add: (jreHome / 'lib' / 'rt.jar') pathName.
@@ -642,7 +673,7 @@
     self searchForClassPathIn: jreHome / 'lib' / 'modules'.
 
     "Search for JDK tools (javac & co)"
-    (jdkHome ~= javaHome and:[(jdkHome / 'lib') exists]) ifTrue:[
+    (jdkHome notNil and:[(jdkHome / 'lib') exists]) ifTrue:[
         self searchForClassPathIn: jdkHome / 'lib'
     ].
     ^self classPath
@@ -654,7 +685,7 @@
     "
 
     "Created: / 27-10-2010 / 21:15:00 / Jan Vrany <jan.vrany@fit.cvut.cz>"
-    "Modified: / 12-01-2013 / 15:55:04 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    "Modified: / 23-01-2013 / 12:26:07 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 !
 
 searchForClassPathIn: dir 
@@ -678,15 +709,12 @@
 
     h := (OperatingSystem getEnvironment:'JAVA_HOME').
     h notNil ifTrue:[
-        javaHome := h  asFilename.
+        javaHome := h asFilename.
         "/Do not trust JAVA_HOME, it might be wrong (on Windows machine due
         "/to a registry mess
-        javaHome exists ifTrue:[
-            (javaHome / 'jre') exists ifTrue:[
-                javaHome := javaHome / 'jre'.
-            ].
-            ^javaHome
-        ]
+        ((javaHome / 'lib' / 'rt.jar') exists 
+            or:[(javaHome / 'jre' / 'lib' / 'rt.jar') exists])
+                ifTrue:[ ^ javaHome ].
     ].
 
     self javaHomes do:
@@ -705,11 +733,10 @@
     "
 
     "Created: / 27-10-2010 / 19:03:56 / Jan Vrany <jan.vrany@fit.cvut.cz>"
-    "Modified: / 22-11-2010 / 13:18:15 / Jan Vrany <jan.vrany@fit.cvut.cz>"
     "Modified: / 15-03-2011 / 13:29:14 / Jan Kurs <kursjan@fit.cvut.cz>"
     "Modified: / 15-03-2011 / 13:47:02 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
     "Modified: / 19-07-2012 / 11:08:04 / jv"
-    "Modified (comment): / 15-12-2012 / 01:04:34 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    "Modified: / 23-01-2013 / 12:16:49 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 !
 
 searchForSourcePath
@@ -977,14 +1004,20 @@
     arch := OperatingSystem getSystemInfo at:#machine.
     arch = 'x86_64' ifTrue:[arch := 'amd64'].
 
-    ^ { '/usr/lib/jvm/java-6-openjdk/jre'  .
-        '/usr/lib/jvm/java-6-openjdk-',arch,'/jre' }
+    ^ { 
+        '/usr/lib/jvm/java-6-openjdk'  .            "/ JDK - older linuxes
+        '/usr/lib/jvm/java-6-openjdk-',arch.        "/ JDK - newer linuxes
+
+        '/usr/lib/jvm/java-6-openjdk/jre'  .        "/ JRE - older linuxes
+        '/usr/lib/jvm/java-6-openjdk-',arch, '/jre' "/ JRE - newer linuxes
+
+    }
 
     "
     JavaRelease::OpenJDK6 new javaHomesOnUNIX
     "
 
-    "Modified (comment): / 08-01-2013 / 12:22:50 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    "Modified: / 23-01-2013 / 12:19:05 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 !
 
 name
@@ -1025,18 +1058,14 @@
 
 searchForSourcePath
 
-    | java_homes src_zip |
+    | jdkHome src_zip |
 
     super searchForSourcePath.
 
     sourcePath := OrderedCollection new.
-    java_homes := OrderedCollection new.
-    self javaHome notNil ifTrue:[
-        java_homes add: self javaHome
-    ].
-
-    java_homes do:[ :java_home |
-        src_zip := java_home asFilename directory / 'src.zip'.
+    jdkHome := self jdkHome.
+    jdkHome notNil ifTrue:[
+        src_zip := jdkHome asFilename / 'src.zip'.
         src_zip exists ifTrue:[sourcePath add: src_zip pathName].
     ].
 
@@ -1045,7 +1074,7 @@
     "
 
     "Created: / 03-09-2012 / 18:38:36 / Jan Vrany <jan.vrany@fit.cvut.cz>"
-    "Modified: / 12-01-2013 / 15:56:06 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    "Modified: / 23-01-2013 / 12:22:33 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 ! !
 
 !JavaRelease::OpenJDK7 class methodsFor:'documentation'!
@@ -1354,3 +1383,4 @@
 version_SVN
     ^ '§Id::                                                                                                                        §'
 ! !
+