--- a/examples/tomcat6/ApacheTomcat6.st Thu Jan 10 23:55:31 2013 +0000
+++ b/examples/tomcat6/ApacheTomcat6.st Fri Jan 11 00:06:52 2013 +0000
@@ -63,8 +63,148 @@
"Modified: / 10-01-2013 / 22:45:43 / Jan Vrany <jan.vrany@fit.cvut.cz>"
! !
+!ApacheTomcat6 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' / 'tomcat6'
+ / '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: / 23-08-2012 / 01:58:37 / m"
+ "Modified: / 10-01-2013 / 22:44:58 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+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"
+! !
+
+!ApacheTomcat6 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>"
+! !
+
+!ApacheTomcat6 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>"
+ "Modified (format): / 10-01-2013 / 22:42:38 / 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>"
+ "Modified: / 10-01-2013 / 22:44:32 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
!ApacheTomcat6 class methodsFor:'documentation'!