Fixes for Tomcat 6 startup.
- Tomcat6 standalone startup now checks for Java relase (JDK6 required)
- JavaUtilities tomcat6x now returns ApacheTomcat6 startup class to
avoid code duplication.
--- a/JavaUtilities.st Wed Nov 20 10:00:26 2013 +0000
+++ b/JavaUtilities.st Wed Nov 20 10:42:07 2013 +0000
@@ -27,13 +27,6 @@
category:'Languages-Java-Utilities'
!
-Object subclass:#Tomcat6x
- instanceVariableNames:'bootstrap'
- classVariableNames:'OldspaceIncreased'
- poolDictionaries:''
- privateIn:JavaUtilities
-!
-
Object subclass:#Tomcat7x
instanceVariableNames:'bootstrap'
classVariableNames:'OldspaceIncreased'
@@ -78,9 +71,15 @@
tomcat6x
- ^Tomcat6x new
+ (Smalltalk at: #ApacheTomcat6) isNil ifTrue:[
+ (Smalltalk loadPackage:'stx:libjava/examples/tomcat6') ifFalse:[
+ self error:'Failed to load Tomcat 6.x package'.
+ ].
+ ].
+ ^ (Smalltalk at: #ApacheTomcat6) new
"Created: / 07-05-2012 / 22:03:27 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+ "Modified: / 20-11-2013 / 10:05:56 / Jan Vrany <jan.vrany@fit.cvut.cz>"
!
tomcat7x
@@ -90,150 +89,6 @@
"Created: / 07-05-2012 / 22:11:30 / Jan Vrany <jan.vrany@fit.cvut.cz>"
! !
-!JavaUtilities::Tomcat6x methodsFor:'accessing - paths'!
-
-catalinaHome
- "Bit hacky, but..."
- "/ OperatingSystem getLoginName = 'jv' ifTrue: [
- "/ ^ '/home/jv/Projects/libjava/sources/libjava/branches/jk_new_structure/src/examples/tomcat/apache-tomcat-6.0.35-src/output/build'
- "/ ].
-
- OperatingSystem getLoginName = 'm' ifTrue: [
- ^ '/home/m/Projects/stx/libjava/branches/jk_new_structure/src/examples/tomcat/apache-tomcat-6.0.35-src/output/build'
- ].
- "Add your default here"
- ^ ((Smalltalk at: #'stx_libjava') packageDirectory / 'examples' / 'tomcat'
- / 'apache-tomcat-6.0.35-src' / 'output'
- / 'build') pathName
-
- "Created: / 08-12-2011 / 22:17:45 / Jan Vrany <jan.vrany@fit.cvut.cz>"
- "Modified: / 13-12-2011 / 14:32:49 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
- "Modified (format): / 23-08-2012 / 00:12:53 / Jan Vrany <jan.vrany@fit.cvut.cz>"
- "Modified: / 23-08-2012 / 01:58:37 / m"
-!
-
-classPath1
-
- ^ self catalinaHome , '/bin/*.jar'
-
- "Created: / 08-12-2011 / 22:43:53 / Jan Vrany <jan.vrany@fit.cvut.cz>"
- "Modified: / 09-01-2013 / 16:47:16 / Jan Vrany <jan.vrany@fit.cvut.cz>"
-!
-
-classPath2
-
- ^ self catalinaHome , '/lib/*.jar'
-
- "Created: / 08-12-2011 / 22:44:02 / Jan Vrany <jan.vrany@fit.cvut.cz>"
-!
-
-sourcePath
- | pkgdir root path p |
- pkgdir := Smalltalk getPackageDirectoryForPackage: self class package.
- pkgdir isNil ifTrue: [ ^ #() ].
- root := pkgdir / 'examples' / 'tomcat' / 'apache-tomcat-6.0.35-src'.
- OperatingSystem getLoginName = 'm' ifTrue: [
- root := '/home/m/Projects/stx/libjava/branches/jk_new_structure/src/examples/tomcat/apache-tomcat-6.0.35-src'
- asFilename
- ].
- OperatingSystem getLoginName = 'jv' ifTrue: [
- root := '/home/jv/Projects/libjava/sources/libjava/branches/jk_new_structure/src/examples/tomcat/apache-tomcat-6.0.35-src/'
- asFilename
- ].
- root exists ifFalse: [ ^ #() ].
- path := OrderedCollection new.
- (p := root / 'java') exists ifTrue: [ path add: p ].
- (p := root / 'java-extras') exists ifTrue: [ path add: p ].
- ^ path
-
- "Created: / 08-12-2011 / 23:16:51 / Jan Vrany <jan.vrany@fit.cvut.cz>"
- "Modified: / 13-12-2011 / 14:33:42 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
- "Modified: / 30-07-2012 / 15:11:58 / Jan Vrany <jan.vrany@fit.cvut.cz>"
- "Modified: / 23-08-2012 / 01:58:54 / m"
-! !
-
-!JavaUtilities::Tomcat6x methodsFor:'initialization'!
-
-initializeVM
-
- Java flushAllJavaResources.
- Java initialize.
- JavaVM initializeVM.
-
- "Created: / 08-12-2011 / 00:01:32 / Jan Vrany <jan.vrany@fit.cvut.cz>"
-!
-
-setup
-
- | catalinaHome java_lang_System |
-
- catalinaHome := self catalinaHome.
- catalinaHome asFilename exists ifFalse:[
- self error:'Catalina home does not exist'.
- ^self.
- ].
-
- Java addToClassPath: self classPath1.
- Java addToClassPath: self classPath2.
- self sourcePath do:[:each|Java addToSourcePath: each].
- JavaVM booted ifFalse:[self initializeVM].
- java_lang_System := Java classForName:'java.lang.System'.
-
- {
- 'java.util.logging.config.file'. catalinaHome , '/conf/logging.properties' .
- 'java.util.logging.manager'. 'org.apache.juli.ClassLoaderLogManager' .
- 'java.endorsed.dirs'. catalinaHome , '/endorsed' .
- 'catalina.base'. catalinaHome .
- 'catalina.home'. catalinaHome .
- 'java.io.tmpdir'. catalinaHome , '/temp' .
- } pairWiseDo:[:key :value|
- java_lang_System perform: #'setProperty(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;'
- with: (Java as_String: key)
- with: (Java as_String: value)
- ].
- OldspaceIncreased ~~ true ifTrue:[
- ObjectMemory moreOldSpace: 64"MB"*(1024*1024).
- OldspaceIncreased := true.
- ].
-
- "Created: / 18-04-2012 / 08:08:45 / Jan Vrany <jan.vrany@fit.cvut.cz>"
-! !
-
-!JavaUtilities::Tomcat6x methodsFor:'start/stop'!
-
-start
-
- | notifier |
-
- self setup.
-
- notifier := (Java classForName: 'stx.libjava.tomcat.StartupNotifier').
-
-
- [
- (Java classForName: 'org.apache.catalina.startup.Bootstrap')
- perform: #'main([Ljava/lang/String;)V'
- with: ((Java classForName:'java.lang.String') javaArrayClass with:(Java as_String:'start')).
- ] fork.
-
- notifier waitUntilStarted.
- Transcript showCR: '== TomCat ready!! =='
-
- "Created: / 07-12-2011 / 23:59:36 / Jan Vrany <jan.vrany@fit.cvut.cz>"
- "Modified: / 10-01-2013 / 16:55:18 / Jan Vrany <jan.vrany@fit.cvut.cz>"
-!
-
-stop
-
- self setup.
-
- (Java classForName: 'org.apache.catalina.startup.Bootstrap')
- perform: #'main([Ljava/lang/String;)V'
- with: ((Java classForName:'java.lang.String') javaArrayClass with:(Java as_String:'stop'))
-
- "Created: / 08-12-2011 / 00:32:02 / Jan Vrany <jan.vrany@fit.cvut.cz>"
-! !
-
!JavaUtilities::Tomcat7x methodsFor:'accessing - paths'!
catalinaHome
--- a/examples/tomcat6/ApacheTomcat6.st Wed Nov 20 10:00:26 2013 +0000
+++ b/examples/tomcat6/ApacheTomcat6.st Wed Nov 20 10:42:07 2013 +0000
@@ -128,10 +128,13 @@
exceptionOrNil suspendedContext fullPrintAllOn: Stderr.
].
Stderr nextPutLine:'Exiting'.
- Smalltalk exit:1.
+ Smalltalk isStandAloneApp ifTrue:[
+ Smalltalk exit:1.
+ ].
].
"Created: / 24-04-2013 / 10:49:51 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+ "Modified: / 20-11-2013 / 10:28:58 / Jan Vrany <jan.vrany@fit.cvut.cz>"
! !
!ApacheTomcat6 class methodsFor:'multiple applications support'!
@@ -366,11 +369,23 @@
initializeVM
+ | openJDK6 |
+
+ Java release isJava6 ifFalse:[
+ openJDK6 := JavaRelease openJDK6.
+ openJDK6 isAvailable ifTrue:[
+ Java release: openJDK6
+ ] ifFalse:[
+ self class error: 'OpenJDK6 not available. Tomcat6 does not work on JDK 7 (yet). Try to set STX_LIBJAVA_RELEASE=JDK6'.
+ ].
+ ].
+
Java flushAllJavaResources.
Java initialize.
JavaVM initializeVM.
"Created: / 08-12-2011 / 00:01:32 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+ "Modified: / 20-11-2013 / 10:30:40 / Jan Vrany <jan.vrany@fit.cvut.cz>"
!
setup