# HG changeset patch # User vranyj1 # Date 1343726323 0 # Node ID 8319db430a11df5ad490f93daf9f042dd99d70e3 # Parent d2ce64ae34148e240756ac345eae772bbbf39acb Fixes some initialization problems (hopefully) diff -r d2ce64ae3414 -r 8319db430a11 src/JavaRelease.st --- a/src/JavaRelease.st Mon Jul 30 23:57:25 2012 +0000 +++ b/src/JavaRelease.st Tue Jul 31 09:18:43 2012 +0000 @@ -1,1253 +0,0 @@ -" - COPYRIGHT (c) 1996-2011 by Claus Gittinger - - New code and modifications done at SWING Research Group [1]: - - COPYRIGHT (c) 2010-2011 by Jan Vrany, Jan Kurs and Marcel Hlopko - SWING Research Group, Czech Technical University in Prague - - This software is furnished under a license and may be used - only in accordance with the terms of that license and with the - inclusion of the above copyright notice. This software may not - be provided or otherwise made available to, or used by, any - other person. No title to or ownership of the software is - hereby transferred. - - [1] Code written at SWING Research Group contains a signature - of one of the above copright owners. For exact set of such code, - see the differences between this version and version stx:libjava - as of 1.9.2010 -" -"{ Package: 'stx:libjava' }" - -Object subclass:#JavaRelease - instanceVariableNames:'javaHome classPath sourcePath classes bootClassPathClasses - extDirsClasses' - classVariableNames:'' - poolDictionaries:'' - category:'Languages-Java-Support' -! - -JavaRelease class instanceVariableNames:'instance' - -" - No other class instance variables are inherited by this class. -" -! - -JavaRelease subclass:#Custom - instanceVariableNames:'' - classVariableNames:'' - poolDictionaries:'' - privateIn:JavaRelease -! - -JavaRelease subclass:#OpenJDK6 - instanceVariableNames:'' - classVariableNames:'' - poolDictionaries:'' - privateIn:JavaRelease -! - -JavaRelease::OpenJDK6 subclass:#OpenJDK7 - instanceVariableNames:'' - classVariableNames:'' - poolDictionaries:'' - privateIn:JavaRelease -! - -JavaRelease subclass:#SunJDK122 - instanceVariableNames:'' - classVariableNames:'' - poolDictionaries:'' - privateIn:JavaRelease -! - -JavaRelease::OpenJDK6 subclass:#SunJDK6 - instanceVariableNames:'' - classVariableNames:'' - poolDictionaries:'' - privateIn:JavaRelease -! - -!JavaRelease class methodsFor:'documentation'! - -copyright -" - COPYRIGHT (c) 1996-2011 by Claus Gittinger - - New code and modifications done at SWING Research Group [1]: - - COPYRIGHT (c) 2010-2011 by Jan Vrany, Jan Kurs and Marcel Hlopko - SWING Research Group, Czech Technical University in Prague - - This software is furnished under a license and may be used - only in accordance with the terms of that license and with the - inclusion of the above copyright notice. This software may not - be provided or otherwise made available to, or used by, any - other person. No title to or ownership of the software is - hereby transferred. - - [1] Code written at SWING Research Group contains a signature - of one of the above copright owners. For exact set of such code, - see the differences between this version and version stx:libjava - as of 1.9.2010 - -" -! ! - -!JavaRelease class methodsFor:'instance creation'! - -custom - ^Custom instance - - "Created: / 26-07-2012 / 23:37:25 / Jan Vrany " -! - -openJDK6 - ^ OpenJDK6 instance - - "Created: / 27-10-2010 / 21:41:33 / Jan Vrany " - "Modified: / 05-11-2011 / 18:45:02 / Marcel Hlopko " - "Modified: / 27-07-2012 / 00:22:39 / Jan Vrany " -! - -openJDK7 - ^ OpenJDK7 instance. - - "Created: / 26-07-2012 / 23:51:32 / Jan Vrany " -! - -sunJDK122 - ^ SunJDK122 instance - - "Created: / 27-10-2010 / 21:41:55 / Jan Vrany " - "Modified: / 05-11-2011 / 18:45:09 / Marcel Hlopko " - "Modified: / 27-07-2012 / 00:22:47 / Jan Vrany " -! - -sunJDK6 - ^ SunJDK6 instance - - "Created: / 22-11-2010 / 13:33:23 / Jan Vrany " - "Modified: / 05-11-2011 / 18:45:14 / Marcel Hlopko " - "Modified: / 27-07-2012 / 00:22:52 / Jan Vrany " -! ! - -!JavaRelease class methodsFor:'accessing'! - -all - ^(self allSubclasses - reject: [:rel | rel isAbstract ] - thenCollect: [:rel | rel instance ]) - asSortedCollection: [:a :b | a priority > b priority ] - - - " - JavaRelease all - " - - "Created: / 27-07-2012 / 00:10:22 / Jan Vrany " -! - -any - | releases | - - releases := self available. - releases isEmptyOrNil ifTrue:[ ^ nil ]. - ^ releases first initialize - - - " - JavaRelease any - " - - "Created: / 22-11-2010 / 13:11:58 / Jan Vrany " - "Modified: / 01-11-2011 / 14:02:01 / Marcel Hlopko " - "Modified: / 26-07-2012 / 23:42:13 / Jan Vrany " -! - -available - | releases | - releases := self all select: [:rel | rel isAvailable ]. - releases isEmpty - ifTrue: [ self error: 'No Java release found'. ^nil ]. - ^releases - - " - JavaRelease available - " - - "Created: / 26-07-2012 / 23:41:09 / Jan Vrany " -! ! - -!JavaRelease class methodsFor:'instance creation-private'! - -instance - instance isNil ifTrue:[ - instance := self new initialize - ]. - ^instance - - "Created: / 27-07-2012 / 00:22:13 / Jan Vrany " -! ! - -!JavaRelease class methodsFor:'queries'! - -isAbstract - - ^self class == JavaRelease - - "Created: / 22-11-2010 / 13:33:57 / Jan Vrany " -! ! - -!JavaRelease methodsFor:'accessing'! - -bootClassPath - "Returns a default value of sun.boot.class.path" - - OperatingSystem isUNIXlike ifTrue: [ ^ self bootClassPathOnUNIX ]. - OperatingSystem isMSWINDOWSlike ifTrue: [ ^ self bootClassPathOnWindows ]. - self error: 'Unsupported platform'. - ^ #(). - - "Created: / 02-11-2011 / 12:19:43 / Marcel Hlopko " -! - -bootClassPathOnUNIX - "Not known..." - ^#() - - "Created: / 02-11-2011 / 12:33:19 / Marcel Hlopko " - "Modified: / 27-07-2012 / 00:23:40 / Jan Vrany " -! - -bootClassPathOnWindows - self subclassResponsibility. - - "Created: / 02-11-2011 / 12:33:22 / Marcel Hlopko " -! - -classPath - - "Returns a default class path" - - classPath ifNil:[self searchForClassPath]. - ^classPath - - " - JavaRelease openJDK6 classPath - " - - "Created: / 27-10-2010 / 19:20:24 / Jan Vrany " - "Modified: / 27-10-2010 / 21:48:07 / Jan Vrany " -! - -javaExtDirs - - "Returns a default value of java.ext.dirs property" - - OperatingSystem isUNIXlike ifTrue:[ ^ self javaExtDirsOnUNIX ]. - OperatingSystem isMSWINDOWSlike ifTrue:[ ^ self javaExtDirsOnWindows ]. - self error:'Unsupported platform'. - ^ #() - - - " - JavaRelease openJDK6 classPath - " - - "Modified: / 27-10-2010 / 21:48:07 / Jan Vrany " - "Created: / 31-08-2011 / 19:59:23 / Jan Vrany " -! - -javaExtDirsOnUNIX - - ^#() - - "Created: / 31-08-2011 / 19:59:32 / Jan Vrany " -! - -javaExtDirsOnWindows - - ^#() - - "Created: / 31-08-2011 / 19:59:32 / Jan Vrany " -! - -javaHome - - "Answer a Java home" - - javaHome isNil ifTrue:[ - javaHome := self searchForJavaHome. - ]. - ^javaHome - - " - JavaRelease openJDK6 javaHome - " - - "Created: / 27-10-2010 / 18:59:35 / Jan Vrany " - "Modified: / 27-07-2012 / 00:24:17 / Jan Vrany " -! - -javaHomeOrNil - - "Answer a Java home" - - | home | - home := (javaHome - ifNotNil:[javaHome] - ifNil:[self searchForJavaHome]). - ^home - - " - JavaRelease openJDK6 javaHome - " - - "Created: / 22-11-2010 / 13:17:13 / Jan Vrany " -! - -javaHomes - - "Answer a set of possible java homes, those directories are searched" - - - OperatingSystem isUNIXlike ifTrue:[ ^ self javaHomesOnUNIX ]. - OperatingSystem isMSWINDOWSlike ifTrue:[ ^ self javaHomesOnWindows ]. - self error:'Unsupported platform'. - ^ #() - - "Modified: / 22-11-2010 / 13:28:00 / Jan Vrany " -! - -javaHomesOnUNIX - "raise an error: must be redefined in concrete subclass(es)" - - ^ self subclassResponsibility -! - -javaHomesOnWindows - "raise an error: must be redefined in concrete subclass(es)" - - ^ self subclassResponsibility -! - -jreHome - - "Answers the directory where the JRE lives" - - | jreHome | - - self javaHome isNil ifTrue:[ ^ nil ]. - - ^(jreHome := self javaHome asFilename / 'jre') exists - ifTrue:[jreHome] - ifFalse:[javaHome asFilename]. - - "Created: / 27-10-2010 / 21:24:39 / Jan Vrany " -! - -name - - "Answer a human readable name of the Java release such as Sun JDK 1.2.2 or OpenJDK 6" - - ^self subclassResponsibility - - "Created: / 27-10-2010 / 18:53:24 / Jan Vrany " -! - -priority - - ^50 - - "Created: / 22-11-2010 / 13:34:20 / Jan Vrany " -! - -selector - "Returns instance-creation selector to get the receiver. - See JavaRelease class, protocol instance creation" - - ^self subclassResponsibility - - "Created: / 27-07-2012 / 10:04:29 / Jan Vrany " -! - -sourcePath - - "Returns a paths where sources are located" - - sourcePath ifNil:[self searchForSourcePath]. - ^sourcePath - - " - JavaRelease openJDK6 sourcePath - " - - "Created: / 27-10-2010 / 19:20:24 / Jan Vrany " - "Modified: / 30-11-2010 / 11:55:59 / Jan Vrany " -! ! - -!JavaRelease methodsFor:'debugging'! - -dumpConfigOn: stream - - | dumper | - dumper := [:name :value :isfile| - | values | - - '%-15s : ' printf:{ name } on: stream. - value isString - ifTrue:[values := { value asString }] - ifFalse:[values := value]. - values do:[:v| - stream nextPutAll: v asString. - isfile ifTrue:[ - v asFilename exists ifFalse:[ - stream nextPutAll:' (not found!!!!!!)' - ]. - ] - ] separatedBy:[stream cr; next: 15 + 3 put: Character space]. - stream cr. - ]. - - - - stream nextPutAll: '== Java release config =='; cr. - dumper value: 'name' value: self name value: false. - dumper value: 'java home' value: self javaHome value: true. - dumper value: 'jre home' value: self jreHome asString value: true. - dumper value: 'class path' value: self classPath value: true. - dumper value: 'boot class path' value: self bootClassPath value: true. - dumper value: 'ext dirs' value: self javaExtDirs value: true. - - - " - Java release dumpConfigOn: Transcript. - " - - "Created: / 10-12-2011 / 12:55:51 / Jan Vrany " -! ! - -!JavaRelease methodsFor:'displaying'! - -displayString - ^self name - - "Created: / 27-07-2012 / 00:01:44 / Jan Vrany " -! ! - -!JavaRelease methodsFor:'initialization'! - -initialize - self initializeBootClassPathIndex. - self initializeExtDirsIndex. - self initializeClassIndex. - - "Created: / 01-11-2011 / 14:09:07 / Marcel Hlopko " -! - -initializeBootClassPathIndex - bootClassPathClasses := IdentitySet new. - self bootClassPath do: [:file | - | filename | - - filename := file pathName. - - self assert: (file suffix = 'jar'). - self assert: (file exists). - self selectAllClassNamesIn: filename to: bootClassPathClasses. - ]. - - "Created: / 02-11-2011 / 12:12:50 / Marcel Hlopko " - "Modified: / 02-11-2011 / 23:46:39 / Jan Vrany " - "Modified: / 19-07-2012 / 11:02:41 / jv" -! - -initializeClassIndex - | jreHome | - - (jreHome := self jreHome) isNil ifTrue:[ ^ self ]. - classes := IdentitySet new. - - self jreHome recursiveDirectoryContents do: [ - :each | - (each endsWith: '.class') ifTrue: [ - classes add: each asSymbol. - ]. - (each endsWith: '.jar') ifTrue: [ self selectAllClassNamesIn: (self jreHome asFilename / each asFilename) to: classes. ] - ]. - - "Created: / 01-11-2011 / 14:09:07 / Marcel Hlopko " - "Modified: / 27-07-2012 / 13:59:05 / Jan Vrany " -! - -initializeExtDirsIndex - extDirsClasses := IdentitySet new. - self javaExtDirs do: [ - :dir | - dir exists ifFalse: [ - Logger - log: dir pathName - , ', included in JavaRelease>>javaExtDirs, does not exist' - severity: #info - facility: 'JVM' - ] ifTrue: [ - dir recursiveDirectoryContents do: [ - :filename | - (filename endsWith: '.class') ifTrue: [ extDirsClasses add: filename asSymbol ]. - (filename endsWith: '.jar') ifTrue: [ - self selectAllClassNamesIn: dir asFilename / filename asFilename to: extDirsClasses - ]. - ] - ]. - ]. - - "Created: / 02-11-2011 / 12:12:53 / Marcel Hlopko " -! - -selectAllClassNamesIn: jarArchiveName to: anIdentityCollection - | jar classesInJar | - jar := ZipArchive readingFrom: jarArchiveName asFilename readStream. - classesInJar := jar entries select: [:each | each endsWith: '.class'. ]. - classesInJar do: [:each | - anIdentityCollection add: (each copyFrom: 1 to: each size - 6) asSymbol - ]. - - " - JavaRelease any." - - "Created: / 02-11-2011 / 12:17:01 / Marcel Hlopko " - "Modified (format): / 02-11-2011 / 23:34:54 / Jan Vrany " -! - -updateClassIndexFrom: jarArchiveName - | jar classesInJar | - jar := ZipArchive - readingFrom: (self jreHome asFilename / jarArchiveName asFilename) - readStream. - classesInJar := jar entries select: [:each | each endsWith: '.class'. ]. - classesInJar do: [:each | classes add: each asSymbol]. - - " - JavaRelease any." - - "Created: / 01-11-2011 / 14:18:42 / Marcel Hlopko " -! ! - -!JavaRelease methodsFor:'private'! - -searchInternalIndex: anIdentityCollection for: className - | classFileName | - classFileName := (className asSlashedJavaClassName) asSymbol. - ^ anIdentityCollection includes: classFileName asSymbol. - - "Created: / 02-11-2011 / 12:27:56 / Marcel Hlopko " -! ! - -!JavaRelease methodsFor:'queries'! - -bootClassPathIncludesClassNamed: className - ^ self searchInternalIndex: bootClassPathClasses for: className. - - "Created: / 02-11-2011 / 12:11:03 / Marcel Hlopko " -! - -extDirsIncludesClassNamed: className - ^self searchInternalIndex: classes for: className. - - "Created: / 02-11-2011 / 12:11:44 / Marcel Hlopko " -! - -includesClassNamed: className - self searchInternalIndex: classes for: className. - - "Created: / 01-11-2011 / 14:50:03 / Marcel Hlopko " -! - -isAvailable - - ^self javaHomeOrNil notNil - - " - JavaRelease openJDK6 isAvailable - JavaRelease sunJDK6 isAvailable - - " - - "Created: / 22-11-2010 / 13:15:16 / Jan Vrany " -! - -isCustom - ^false - - "Created: / 27-07-2012 / 00:08:10 / Jan Vrany " -! ! - -!JavaRelease methodsFor:'searching'! - -searchForClassPath - - | jreHome | - classPath := OrderedCollection new. - jreHome := self jreHome. - "Ensure, that rt.jar is first" - classPath add: (JavaPathElement newFromRelease:(jreHome / 'lib' / 'rt.jar') asString). - - self searchForClassPathIn: jreHome / 'lib' . - self searchForClassPathIn: jreHome / 'lib' / 'modules'. - - ^self classPath - - " - Java release searchForClassPath. - Java release classPath. - - " - - "Created: / 27-10-2010 / 21:15:00 / Jan Vrany " -! - -searchForClassPathIn: dir - dir exists ifFalse: [ ^ self ]. - dir directoryContentsAsFilenames do: [ - :file | - " this is to make sure that rt.jar is always first --v " - (file suffix = 'jar' and: [ file baseName ~= 'rt.jar' ]) ifTrue: [ - classPath add: (JavaPathElement newFromRelease:file asString) - ] - ] - - "Created: / 27-10-2010 / 21:38:39 / Jan Vrany " - "Modified: / 02-11-2011 / 17:49:59 / Marcel Hlopko " - "Modified: / 27-07-2012 / 11:45:11 / Jan Vrany " -! - -searchForJavaHome - - | h | - - h := (OperatingSystem getEnvironment:'JAVA_HOME'). - h notNil ifTrue:[ - 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 - ] - ]. - - self javaHomes do: - [:home| | homeAsFilename | - homeAsFilename := home asFilename. - homeAsFilename exists ifTrue: - [(self validateJavaHome: homeAsFilename) ifTrue: - [^javaHome := home]]]. - - ^nil - - "Created: / 27-10-2010 / 19:03:56 / Jan Vrany " - "Modified: / 22-11-2010 / 13:18:15 / Jan Vrany " - "Modified: / 15-03-2011 / 13:29:14 / Jan Kurs " - "Modified: / 15-03-2011 / 13:47:02 / Marcel Hlopko " - "Modified: / 19-07-2012 / 11:08:04 / jv" -! - -searchForSourcePath - - | src_zip | - - sourcePath := OrderedCollection new. - src_zip := self javaHome asFilename directory / 'src.zip'. - src_zip exists ifTrue:[sourcePath add: (JavaPathElement newFromRelease:src_zip asString)]. - - " - JavaRelease openJDK6 searchForSourcePath; sourcePath - " - - "Created: / 27-10-2010 / 21:15:00 / Jan Vrany " - "Modified: / 27-07-2012 / 11:45:34 / Jan Vrany " -! ! - -!JavaRelease methodsFor:'validating'! - -validateJavaHome: home - - "Just JRE" - ( home asFilename / 'lib' / 'rt.jar' ) exists ifTrue:[^true]. - - "Full JDK" - ( home asFilename / 'jre' / 'lib' / 'rt.jar' ) exists ifTrue:[^true]. - - ^ false - - " - JavaRelease basicNew validateJavaHome: '/usr/lib/jvm/java-6-openjdk' - JavaRelease basicNew validateJavaHome: '/tmp' - " - - "Created: / 27-10-2010 / 19:14:08 / Jan Vrany " - "Modified: / 27-10-2010 / 21:47:41 / Jan Vrany " -! ! - -!JavaRelease::Custom class methodsFor:'documentation'! - -copyright -" - COPYRIGHT (c) 1996-2011 by Claus Gittinger - - New code and modifications done at SWING Research Group [1]: - - COPYRIGHT (c) 2010-2011 by Jan Vrany, Jan Kurs and Marcel Hlopko - SWING Research Group, Czech Technical University in Prague - - This software is furnished under a license and may be used - only in accordance with the terms of that license and with the - inclusion of the above copyright notice. This software may not - be provided or otherwise made available to, or used by, any - other person. No title to or ownership of the software is - hereby transferred. - - [1] Code written at SWING Research Group contains a signature - of one of the above copright owners. For exact set of such code, - see the differences between this version and version stx:libjava - as of 1.9.2010 - -" -! - -version_SVN - ^ '$Id:: $' -! ! - -!JavaRelease::Custom methodsFor:'accessing'! - -bootClassPathOnUNIX - "superclass JavaRelease says that I am responsible to implement this method" - - ^ self shouldImplement -! - -bootClassPathOnWindows - "superclass JavaRelease says that I am responsible to implement this method" - - ^ self shouldImplement -! - -javaHome - - "Answer a Java home" - - javaHome isNil ifTrue:[ - javaHome := OperatingSystem getEnvironment:'JAVA_HOME'. - ]. - ^javaHome - - " - JavaRelease custom javaHome - " - - "Created: / 26-07-2012 / 23:39:14 / Jan Vrany " -! - -javaHome: aString - javaHome := aString - - " - JavaRelease openJDK6 javaHome - " - - "Created: / 26-07-2012 / 23:32:34 / Jan Vrany " -! - -javaHomesOnUNIX - "raise an error: must be redefined in concrete subclass(es)" - - ^ self shouldNotImplement - - "Modified: / 27-07-2012 / 00:02:19 / Jan Vrany " -! - -javaHomesOnWindows - "raise an error: must be redefined in concrete subclass(es)" - - ^ self shouldNotImplement - - "Modified: / 27-07-2012 / 00:02:22 / Jan Vrany " -! - -name - "superclass JavaRelease says that I am responsible to implement this method" - - ^ 'Custom' - - "Modified: / 27-07-2012 / 00:02:31 / Jan Vrany " -! - -priority - - ^1 - - "Created: / 26-07-2012 / 23:38:12 / Jan Vrany " -! - -selector - "Returns instance-creation selector to get the receiver. - See JavaRelease class, protocol instance creation" - - ^#custom - - "Created: / 27-07-2012 / 10:04:56 / Jan Vrany " -! ! - -!JavaRelease::Custom methodsFor:'initialization'! - -initialize - "Initialize lazily in javaHome:" - - "Created: / 26-07-2012 / 23:40:27 / Jan Vrany " -! ! - -!JavaRelease::Custom methodsFor:'queries'! - -isAvailable - ^true - - "Created: / 26-07-2012 / 23:35:59 / Jan Vrany " -! - -isCustom - ^true - - "Created: / 27-07-2012 / 00:08:02 / Jan Vrany " -! ! - -!JavaRelease::Custom methodsFor:'searching'! - -searchForJavaHome - self shouldNotImplement - - "Created: / 26-07-2012 / 23:34:28 / Jan Vrany " -! ! - -!JavaRelease::OpenJDK6 class methodsFor:'documentation'! - -copyright -" - COPYRIGHT (c) 1996-2011 by Claus Gittinger - - New code and modifications done at SWING Research Group [1]: - - COPYRIGHT (c) 2010-2011 by Jan Vrany, Jan Kurs and Marcel Hlopko - SWING Research Group, Czech Technical University in Prague - - This software is furnished under a license and may be used - only in accordance with the terms of that license and with the - inclusion of the above copyright notice. This software may not - be provided or otherwise made available to, or used by, any - other person. No title to or ownership of the software is - hereby transferred. - - [1] Code written at SWING Research Group contains a signature - of one of the above copright owners. For exact set of such code, - see the differences between this version and version stx:libjava - as of 1.9.2010 - -" -! - -version_SVN - ^ '$Id:: $' -! ! - -!JavaRelease::OpenJDK6 methodsFor:'accessing'! - -bootClassPathOnUNIX - - | jre | - jre := self jreHome. - - ^ { - jre / 'lib' / 'resources.jar' . - jre / 'lib' / 'rt.jar' . - jre / 'lib' / 'jsse.jar' . - jre / 'lib' / 'jce.jar' . - jre / 'lib' / 'charsets.jar' . - } - - " - JavaRelease openJDK6 bootClassPathOnUNIX - " - - "Created: / 02-11-2011 / 12:36:29 / Marcel Hlopko " - "Modified (comment): / 02-11-2011 / 23:39:54 / Jan Vrany " -! - -bootClassPathOnWindows - - "This should be the same as on UNIX, we'll see..." - - ^self bootClassPathOnUNIX - - "Created: / 02-11-2011 / 12:36:29 / Marcel Hlopko " - "Created: / 02-11-2011 / 23:41:59 / Jan Vrany " -! - -javaExtDirsOnUNIX - - ^{ - self javaHome asFilename / 'lib' / 'ext' . - '/usr/java/packages/lib/ext' asFilename - } - - "Created: / 31-08-2011 / 20:01:59 / Jan Vrany " -! - -javaExtDirsOnWindows - - ^{ - self javaHome asFilename / 'lib' / 'ext' . - } - - "Created: / 31-08-2011 / 20:02:19 / Jan Vrany " -! - -javaHomesOnUNIX - ^ #( '/usr/lib/jvm/java-6-openjdk/jre' ) - - "Modified: / 07-08-2011 / 20:38:22 / Jan Vrany " -! - -name - "superclass JavaRelease says that I am responsible to implement this method" - - ^ 'Open JDK 6' - - "Modified: / 27-10-2010 / 19:16:37 / Jan Vrany " -! - -priority - - ^80 - "/^70 - - "Created: / 22-11-2010 / 13:35:17 / Jan Vrany " - "Modified: / 04-02-2011 / 06:59:27 / Jan Vrany " -! - -selector - "Returns instance-creation selector to get the receiver. - See JavaRelease class, protocol instance creation" - - ^#openJDK6 - - "Created: / 27-07-2012 / 10:05:05 / Jan Vrany " -! ! - -!JavaRelease::OpenJDK6 methodsFor:'private'! - -javaHomeOnWindowsJDKDirectoryPrefix - ^'jdk1.6' - - "Created: / 19-07-2012 / 11:04:34 / jv" -! ! - -!JavaRelease::OpenJDK7 class methodsFor:'documentation'! - -copyright -" - COPYRIGHT (c) 1996-2011 by Claus Gittinger - - New code and modifications done at SWING Research Group [1]: - - COPYRIGHT (c) 2010-2011 by Jan Vrany, Jan Kurs and Marcel Hlopko - SWING Research Group, Czech Technical University in Prague - - This software is furnished under a license and may be used - only in accordance with the terms of that license and with the - inclusion of the above copyright notice. This software may not - be provided or otherwise made available to, or used by, any - other person. No title to or ownership of the software is - hereby transferred. - - [1] Code written at SWING Research Group contains a signature - of one of the above copright owners. For exact set of such code, - see the differences between this version and version stx:libjava - as of 1.9.2010 - -" -! - -version_SVN - ^ '$Id:: $' -! ! - -!JavaRelease::OpenJDK7 methodsFor:'accessing'! - -javaHomesOnUNIX - | arch | - - arch := OperatingSystem getSystemInfo at:#machine. - arch = 'x86_64' ifTrue:[arch := 'amd64']. - - ^ { '/usr/lib/jvm/java-7-openjdk/jre' . - '/usr/lib/jvm/java-7-openjdk-',arch,'/jre' } - - " - JavaRelease::OpenJDK7 new javaHomesOnUNIX - " - - "Created: / 11-02-2012 / 17:47:02 / Jan Vrany " -! - -name - ^ 'OpenJDK7 (not yet supported)' - - "Created: / 27-07-2012 / 00:03:17 / Jan Vrany " -! - -priority - - ^ super priority - 10 - "/^70 - - "Modified: / 04-02-2011 / 06:59:27 / Jan Vrany " - "Created: / 11-02-2012 / 17:47:53 / Jan Vrany " -! - -selector - "Returns instance-creation selector to get the receiver. - See JavaRelease class, protocol instance creation" - - ^#openJDK7 - - "Created: / 27-07-2012 / 10:05:32 / Jan Vrany " -! ! - -!JavaRelease::OpenJDK7 methodsFor:'private'! - -javaHomeOnWindowsJDKDirectoryPrefix - ^'jdk1.7' - - "Created: / 19-07-2012 / 11:05:02 / jv" -! ! - -!JavaRelease::SunJDK122 class methodsFor:'documentation'! - -copyright -" - COPYRIGHT (c) 1996-2011 by Claus Gittinger - - New code and modifications done at SWING Research Group [1]: - - COPYRIGHT (c) 2010-2011 by Jan Vrany, Jan Kurs and Marcel Hlopko - SWING Research Group, Czech Technical University in Prague - - This software is furnished under a license and may be used - only in accordance with the terms of that license and with the - inclusion of the above copyright notice. This software may not - be provided or otherwise made available to, or used by, any - other person. No title to or ownership of the software is - hereby transferred. - - [1] Code written at SWING Research Group contains a signature - of one of the above copright owners. For exact set of such code, - see the differences between this version and version stx:libjava - as of 1.9.2010 - -" -! - -version_SVN - ^ '$Id:: $' -! ! - -!JavaRelease::SunJDK122 methodsFor:'accessing'! - -javaHomesOnUNIX - "superclass JavaRelease says that I am responsible to implement this method" - - ^#( - '/home/jv/Projects/JavaX/jdk1.2.2' "/On Jan Vrany's machine :-) - ) - - "Created: / 22-11-2010 / 13:26:29 / Jan Vrany " -! - -javaHomesOnWindows - - ^ #() - -! - -name - "superclass JavaRelease says that I am responsible to implement this method" - - ^ 'Sun JDK 1.2.2' - - "Modified: / 27-07-2012 / 00:14:03 / Jan Vrany " -! - -priority - - ^10 - - "Created: / 22-11-2010 / 13:34:52 / Jan Vrany " -! - -selector - "Returns instance-creation selector to get the receiver. - See JavaRelease class, protocol instance creation" - - ^#sunJDK122 - - "Created: / 27-07-2012 / 10:06:03 / Jan Vrany " -! ! - -!JavaRelease::SunJDK122 methodsFor:'displaying'! - -displayString - - ^self isAvailable ifTrue:[ - self name - ] ifFalse:[ - (self name , ' ' , '(not available)') asText colorizeAllWith: Color gray - ] - - "Created: / 27-07-2012 / 00:13:19 / Jan Vrany " -! ! - -!JavaRelease::SunJDK122 methodsFor:'queries'! - -isAvailable - "We don't really support it" - - ^false - - "Created: / 27-07-2012 / 00:04:11 / Jan Vrany " -! ! - -!JavaRelease::SunJDK6 class methodsFor:'documentation'! - -copyright -" - COPYRIGHT (c) 1996-2011 by Claus Gittinger - - New code and modifications done at SWING Research Group [1]: - - COPYRIGHT (c) 2010-2011 by Jan Vrany, Jan Kurs and Marcel Hlopko - SWING Research Group, Czech Technical University in Prague - - This software is furnished under a license and may be used - only in accordance with the terms of that license and with the - inclusion of the above copyright notice. This software may not - be provided or otherwise made available to, or used by, any - other person. No title to or ownership of the software is - hereby transferred. - - [1] Code written at SWING Research Group contains a signature - of one of the above copright owners. For exact set of such code, - see the differences between this version and version stx:libjava - as of 1.9.2010 - -" -! - -version_SVN - ^ '$Id:: $' -! ! - -!JavaRelease::SunJDK6 methodsFor:'accessing'! - -javaHomesOnUNIX - - ^ #( '/usr/lib/jvm/java-6-sun' ) - - "Created: / 22-11-2010 / 13:31:01 / Jan Vrany " -! - -javaHomesOnWindows - |entry vsn home paths | - - entry := (OperatingSystem registryEntry key:'HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\Java Development Kit'). - entry notNil ifTrue:[ - vsn := entry valueNamed:'CurrentVersion'. - ]. - vsn notNil ifTrue:[ - entry := (OperatingSystem registryEntry - key:'HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\Java Development Kit\',vsn). - home := entry valueNamed:'JavaHome'. - home notNil ifTrue:[ - ^ (Array with:(home,'\jre')) - ]. - ]. - paths := OrderedCollection new. - #( - 'C:\Program Files\Java' - 'C:\Program Files (x86)\Java' - ) do:[:rootpath| - | root | - - root := rootpath asFilename. - root exists ifTrue:[ - root directoryContents do:[:dir| - (dir startsWith:self javaHomeOnWindowsJDKDirectoryPrefix) ifTrue:[ - | path | - (path := root / dir / 'jre') isDirectory ifTrue:[ - paths add: path - ]. - ]. - ] - ] - ]. - - ^ paths - - " - self basicNew javaHomesOnWindows - " - - "Modified: / 07-08-2011 / 20:38:37 / Jan Vrany " - "Modified (format): / 19-08-2011 / 00:46:40 / cg" - "Modified: / 19-07-2012 / 11:04:44 / jv" -! - -name - - ^ 'Sun JDK 6' - - "Created: / 22-11-2010 / 13:31:20 / Jan Vrany " -! - -priority - - "/There is no OpenJDK 6 for Windows yet... - OperatingSystem isMSWINDOWSlike ifTrue:[ - ^100 - ]. - ^75 - - "Created: / 22-11-2010 / 13:35:09 / Jan Vrany " - "Modified: / 19-07-2012 / 10:57:55 / jv" -! - -selector - "Returns instance-creation selector to get the receiver. - See JavaRelease class, protocol instance creation" - - ^#sunJDK6 - - "Created: / 27-07-2012 / 10:05:37 / Jan Vrany " -! ! - -!JavaRelease class methodsFor:'documentation'! - -version_SVN - - ^ '$Id$' - -! !