#FEATURE by cg cvs_MAIN
authorClaus Gittinger <cg@exept.de>
Tue, 28 Aug 2018 15:14:18 +0200
branchcvs_MAIN
changeset 3800 f91a2f7260f9
parent 3799 e923ef3617ea
child 3801 d0e583da3eec
#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
JavaRelease.st
--- 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