#FEATURE by cg
class: JavaRelease
added: #isJava9
class: JavaRelease class
added: #isJDK9
class: JavaRelease::OracleJDK9
class definition
added:
#isJava7
#isJava8
#isJava9
#javaHomeOnWindowsJREDirectoryPrefix
#javaHomesOnUNIX
#javaNativeMethodsImplementation
#javaRelease
#name
#searchForJavaHome
#validateJavaVersionString:
class: JavaRelease::OracleJDK9 class
added:
#isJDK7
#isJDK8
#isJDK9
--- a/JavaRelease.st Tue Aug 28 15:12:44 2018 +0200
+++ b/JavaRelease.st Tue Aug 28 15:14:18 2018 +0200
@@ -1,3 +1,5 @@
+"{ Encoding: utf8 }"
+
"
COPYRIGHT (c) 1996-2015 by Claus Gittinger
@@ -85,6 +87,13 @@
privateIn:JavaRelease
!
+JavaRelease::OracleJDK8 subclass:#OracleJDK9
+ instanceVariableNames:''
+ classVariableNames:''
+ poolDictionaries:''
+ privateIn:JavaRelease
+!
+
JavaRelease subclass:#SunJDK122
instanceVariableNames:''
classVariableNames:''
@@ -572,6 +581,12 @@
^ false
"Created: / 03-04-2014 / 12:34:55 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+isJDK9
+ ^ false
+
+ "Created: / 28-08-2018 / 15:10:17 / Claus Gittinger"
! !
!JavaRelease methodsFor:'accessing'!
@@ -1413,6 +1428,12 @@
"Created: / 03-04-2014 / 12:14:26 / Jan Vrany <jan.vrany@fit.cvut.cz>"
!
+isJava9
+ ^ false
+
+ "Created: / 28-08-2018 / 15:10:56 / Claus Gittinger"
+!
+
isSystem
^ self == self class system
@@ -2891,6 +2912,126 @@
"Modified: / 03-04-2014 / 14:09:23 / Jan Vrany <jan.vrany@fit.cvut.cz>"
! !
+!JavaRelease::OracleJDK9 class methodsFor:'queries'!
+
+isJDK7
+ ^ false
+
+ "Created: / 03-04-2014 / 12:35:18 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+isJDK8
+ ^ false
+
+ "Created: / 03-04-2014 / 12:35:22 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+ "Modified: / 28-08-2018 / 15:10:08 / Claus Gittinger"
+!
+
+isJDK9
+ ^ true
+
+ "Created: / 28-08-2018 / 15:10:12 / Claus Gittinger"
+! !
+
+!JavaRelease::OracleJDK9 methodsFor:'accessing'!
+
+javaHomesOnUNIX
+
+ ^ #( '/usr/lib/jvm/java-9-sun' )
+
+ "Created: / 03-04-2014 / 12:30:57 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+ "Modified: / 28-08-2018 / 15:11:12 / Claus Gittinger"
+!
+
+javaNativeMethodsImplementation
+ "Returns an object that imolements native methods."
+
+ ^ JavaNativeMethodImpl_OracleJDK9
+
+ "Created: / 03-04-2014 / 12:19:06 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+ "Modified: / 28-08-2018 / 15:12:56 / Claus Gittinger"
+!
+
+javaRelease
+ ^ '9.0'
+
+ "Modified: / 28-08-2018 / 15:13:03 / Claus Gittinger"
+!
+
+name
+ ^ 'Oracle Java 9'
+
+ "Created: / 03-04-2014 / 12:33:14 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+ "Modified: / 15-04-2014 / 18:50:05 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+ "Modified: / 28-08-2018 / 15:13:08 / Claus Gittinger"
+! !
+
+!JavaRelease::OracleJDK9 methodsFor:'private'!
+
+javaHomeOnWindowsJREDirectoryPrefix
+ ^'jre9'
+
+ "Created: / 03-04-2014 / 12:31:33 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+ "Modified: / 28-08-2018 / 15:11:07 / Claus Gittinger"
+! !
+
+!JavaRelease::OracleJDK9 methodsFor:'searching'!
+
+searchForJavaHome
+ | h |
+
+ "Try registry first..."
+ self class == JavaRelease::OracleJDK9 ifTrue:[
+ h := self javaHomeOnWindowsFromRegistryForRelease: '9.0'.
+ (h notNil and:[self validateJavaHome: h]) ifTrue:[ javaHome := h. ^ javaHome ].
+ ].
+ ^super searchForJavaHome
+
+
+
+ "
+ JavaRelease openJDK7 searchForSourcePath; sourcePath
+ JavaRelease sunJDK6 searchForSourcePath; sourcePath
+ "
+
+ "Created: / 20-02-2015 / 13:53:59 / jv"
+ "Modified: / 28-08-2018 / 15:13:21 / Claus Gittinger"
+! !
+
+!JavaRelease::OracleJDK9 methodsFor:'testing'!
+
+isJava7
+ ^ false
+
+ "Created: / 03-04-2014 / 12:16:03 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+isJava8
+ ^ false
+
+ "Created: / 03-04-2014 / 12:15:59 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+ "Modified: / 28-08-2018 / 15:10:45 / Claus Gittinger"
+!
+
+isJava9
+ ^ true
+
+ "Created: / 28-08-2018 / 15:10:41 / Claus Gittinger"
+! !
+
+!JavaRelease::OracleJDK9 methodsFor:'validating'!
+
+validateJavaVersionString:aVersionString
+ "Return true if aVersionString (which is what 'java -version' returns)
+ matches what I expect."
+
+ ^ aVersionString matches: '*java version "9.0.*Java(TM) SE Runtime Environment*'
+
+ "Created: / 03-04-2014 / 12:32:38 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+ "Modified: / 03-04-2014 / 14:09:23 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+ "Modified: / 28-08-2018 / 15:13:55 / Claus Gittinger"
+! !
+
!JavaRelease::SunJDK122 class methodsFor:'documentation'!
copyright