Java, JavaRelease: added dumpConfigOn: jk_new_structure
authorvranyj1
Sat, 10 Dec 2011 12:30:17 +0000
branchjk_new_structure
changeset 1259 e3089381b731
parent 1258 b777ab5a1255
child 1260 754bc2f9700c
Java, JavaRelease: added dumpConfigOn:
src/Java.st
src/JavaRelease.st
--- a/src/Java.st	Sat Dec 10 09:33:30 2011 +0000
+++ b/src/Java.st	Sat Dec 10 12:30:17 2011 +0000
@@ -670,6 +670,38 @@
     "Created: / 09-10-2011 / 17:29:17 / m"
 !
 
+dumpConfig
+
+    Transcript notNil ifTrue:[
+        self dumpConfigOn: Transcript
+    ] ifFalse:[
+        self dumpConfigOn: Stdout
+    ]
+
+    "Created: / 10-12-2011 / 12:54:28 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+dumpConfigOn: stream
+    "Prints current config (java home, initial system properties etc) on a stream."
+
+    | props |
+
+    Java release dumpConfigOn: stream.
+    props := Dictionary new.
+    JavaVM initializeSystemPropertiesInto: props.
+    stream nextPutAll: '== Initial system properties =='; cr.
+    props keysAndValuesDo:[:key :value|
+        '%-30s : %s' printf: { key . value } on: stream.
+        stream cr.
+    ].
+
+    "
+        Java dumpConfigOn: Transcript.
+    "
+
+    "Created: / 10-12-2011 / 12:54:48 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
 haltOnKnownBugs
     Object enableBreakPoint: #knownBugs.
 
--- a/src/JavaRelease.st	Sat Dec 10 09:33:30 2011 +0000
+++ b/src/JavaRelease.st	Sat Dec 10 12:30:17 2011 +0000
@@ -301,6 +301,47 @@
     "Modified: / 30-11-2010 / 11:55:59 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 ! !
 
+!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 <jan.vrany@fit.cvut.cz>"
+! !
+
 !JavaRelease methodsFor:'initialization'!
 
 initialize