Added lost methods to ApacheTomcat6 development
authorJan Vrany <jan.vrany@fit.cvut.cz>
Fri, 11 Jan 2013 00:06:52 +0000
branchdevelopment
changeset 1939 4a47ff63015a
parent 1938 7a770798a64a
child 1940 8ff0e3c0e83e
Added lost methods to ApacheTomcat6
examples/tomcat6/ApacheTomcat6.st
--- 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'!