JavaClass can now keep it's classfile bytes. development
authorJan Vrany <jan.vrany@fit.cvut.cz>
Sun, 31 Mar 2013 19:25:00 +0100
branchdevelopment
changeset 2476 d24ce8174195
parent 2475 27f0940ec023
child 2477 6e37b62e21b5
JavaClass can now keep it's classfile bytes. Although a hack, this allows us to use exisiting ECJ's classes to provide type information to the compiler and thus allows for using ECJ within STX:LIBJAVA. A proper solution would be to provide an IBinaryType implementation that reflects on loaded classes.
GroovyClass.st
Java.st
JavaClass.st
JavaClassReader.st
JavaMethod.st
JavaNativeMethod.st
JavaNativeMethodImpl_OpenJDK6.st
Make.proto
Make.spec
abbrev.stc
bc.mak
bmake.bat
experiments/JavaCompiler.st
experiments/experiments.rc
extensions.st
lccmake.bat
libjava.rc
mingwmake.bat
stx_libjava.st
vcmake.bat
--- a/GroovyClass.st	Fri Mar 29 23:37:04 2013 +0000
+++ b/GroovyClass.st	Sun Mar 31 19:25:00 2013 +0100
@@ -53,7 +53,6 @@
 "
 ! !
 
-
 !GroovyClass methodsFor:'compiler interface'!
 
 programmingLanguage
@@ -62,7 +61,6 @@
     "Created: / 18-02-2012 / 20:49:49 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 ! !
 
-
 !GroovyClass methodsFor:'queries'!
 
 isGroovyClass
@@ -72,7 +70,6 @@
     "Created: / 18-02-2012 / 20:28:23 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 ! !
 
-
 !GroovyClass class methodsFor:'documentation'!
 
 version_CVS
--- a/Java.st	Fri Mar 29 23:37:04 2013 +0000
+++ b/Java.st	Sun Mar 31 19:25:00 2013 +0100
@@ -1306,10 +1306,10 @@
 !
 
 classSourceOf:aClass
-    |package dirName binary sourceFileName sourceFile loader codeBaseURL protocol codeBaseURLIdx src|
+    |jpackage dirName binary sourceFileName sourceFile loader codeBaseURL protocol codeBaseURLIdx src|
 
     aClass isNil ifTrue:[
-	^ nil
+        ^ nil
     ].
     "/ look at the cache"
     SourceCache at: aClass ifPresent: [:src|^src].
@@ -1317,92 +1317,91 @@
     "/ first, look in the directory, where the binary
     "/ was loaded from.
 
-    binary := aClass binaryFile.
     binary notNil ifTrue:[
-	binary := binary asFilename.
-	aClass sourceFile notNil ifTrue:[
-	    sourceFileName := binary directory constructString:(aClass sourceFile).
-	    sourceFileName asFilename exists ifFalse:[
-		sourceFileName := nil.
-	    ]
-	].
-	sourceFileName isNil ifTrue:[
-	    sourceFileName := binary withSuffix:'java'.
-	].
-	sourceFile := sourceFileName asFilename.
+        binary := binary asFilename.
+        aClass sourceFile notNil ifTrue:[
+            sourceFileName := binary directory constructString:(aClass sourceFile).
+            sourceFileName asFilename exists ifFalse:[
+                sourceFileName := nil.
+            ]
+        ].
+        sourceFileName isNil ifTrue:[
+            sourceFileName := binary withSuffix:'java'.
+        ].
+        sourceFile := sourceFileName asFilename.
     ] ifFalse:[
-	"/ maybe it was loaded by a java classLoader ...
-	(loader := aClass classLoader) notNil ifTrue:[
-	    codeBaseURLIdx := loader class instVarOffsetOf:'codeBaseURL'.
-	    codeBaseURLIdx notNil ifTrue:[
-		(codeBaseURL := loader instVarAt:codeBaseURLIdx) notNil ifTrue:[
-		    (protocol := codeBaseURL instVarNamed:'protocol') notNil ifTrue:[
-			(Java as_ST_String:protocol) = 'file' ifTrue:[
-			    dirName := Java as_ST_String:(codeBaseURL instVarNamed:'file').
-			    dirName := dirName asFilename.
-			    dirName exists ifTrue:[
-				aClass sourceFile notNil ifTrue:[
-				    sourceFile := sourceFileName := dirName construct:aClass sourceFile.
-				]
-			    ]
-			]
-		    ]
-		]
-	    ]
-	]
+        "/ maybe it was loaded by a java classLoader ...
+        (loader := aClass classLoader) notNil ifTrue:[
+            codeBaseURLIdx := loader class instVarOffsetOf:'codeBaseURL'.
+            codeBaseURLIdx notNil ifTrue:[
+                (codeBaseURL := loader instVarAt:codeBaseURLIdx) notNil ifTrue:[
+                    (protocol := codeBaseURL instVarNamed:'protocol') notNil ifTrue:[
+                        (Java as_ST_String:protocol) = 'file' ifTrue:[
+                            dirName := Java as_ST_String:(codeBaseURL instVarNamed:'file').
+                            dirName := dirName asFilename.
+                            dirName exists ifTrue:[
+                                aClass sourceFile notNil ifTrue:[
+                                    sourceFile := sourceFileName := dirName construct:aClass sourceFile.
+                                ]
+                            ]
+                        ]
+                    ]
+                ]
+            ]
+        ]
     ].
     sourceFile notNil ifTrue:[
-	sourceFile exists ifFalse:[
-	    binary notNil ifTrue:[
-		sourceFileName := binary withSuffix:'jav'.
-		sourceFile := sourceFileName asFilename.
-		sourceFile exists ifFalse:[
-		    sourceFileName := binary withSuffix:'JAV'.
-		    sourceFile := sourceFileName asFilename.
-		    sourceFile exists ifFalse:[
-			sourceFileName := binary withSuffix:'JAVA'.
-			sourceFile := sourceFileName asFilename.
-		    ].
-		].
-	    ]
-	].
+        sourceFile exists ifFalse:[
+            binary notNil ifTrue:[
+                sourceFileName := binary withSuffix:'jav'.
+                sourceFile := sourceFileName asFilename.
+                sourceFile exists ifFalse:[
+                    sourceFileName := binary withSuffix:'JAV'.
+                    sourceFile := sourceFileName asFilename.
+                    sourceFile exists ifFalse:[
+                        sourceFileName := binary withSuffix:'JAVA'.
+                        sourceFile := sourceFileName asFilename.
+                    ].
+                ].
+            ]
+        ].
     ].
 
     "/ special case: there were multiple classes in a single
     "/ source file.
 
     (binary notNil and:[aClass sourceFile notNil]) ifTrue:[
-	binary withoutSuffix baseName ~= aClass sourceFile asFilename withoutSuffix baseName ifTrue:[
-	    'JAVA: trouble extracting fileName: ' infoPrint.
-	    binary withoutSuffix baseName print. ' vs. ' infoPrint.
-	    aClass sourceFile asFilename withoutSuffix baseName infoPrintCR.
-	].
+        binary withoutSuffix baseName ~= aClass sourceFile asFilename withoutSuffix baseName ifTrue:[
+            'JAVA: trouble extracting fileName: ' infoPrint.
+            binary withoutSuffix baseName print. ' vs. ' infoPrint.
+            aClass sourceFile asFilename withoutSuffix baseName infoPrintCR.
+        ].
     ].
 
     "/ if that fails, look in standard places
 
     (sourceFile isNil or:[sourceFile exists not]) ifTrue:[
-	sourceFile := aClass sourceFile.
-	sourceFile isNil ifTrue:[
-	    "Hmm, hmm...just a guess"
-	    sourceFile := (aClass lastName upTo: $$) , '.java'.
-	].
-	package := aClass javaPackageAsDirname.
-	self effectiveSourceDirectories do:[:dir|
-	    src := self classSource: sourceFile package: package in: dir.
-	    src ifNotNil:[^src]
-	]
+        sourceFile := aClass sourceFile.
+        sourceFile isNil ifTrue:[
+            "Hmm, hmm...just a guess"
+            sourceFile := (aClass lastName upTo: $$) , '.java'.
+        ].
+        jpackage := aClass javaPackageAsDirname.
+        self effectiveSourceDirectories do:[:dir|
+            src := self classSource: sourceFile package: jpackage in: dir.
+            src ifNotNil:[^src]
+        ]
     ].
 
     sourceFile isFilename ifFalse:[^nil].
     ^ (sourceFile contentsOfEntireFile).
 
     "
-	Java classSourceOf: JAVA::java::lang::Object
+        Java classSourceOf: JAVA::java::lang::Object
     "
 
     "Modified: / 27-01-1999 / 20:40:30 / cg"
-    "Modified (format): / 23-02-2012 / 10:50:53 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    "Modified: / 31-03-2013 / 19:17:17 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 !
 
 sourceDirectories
--- a/JavaClass.st	Fri Mar 29 23:37:04 2013 +0000
+++ b/JavaClass.st	Sun Mar 31 19:25:00 2013 +0100
@@ -21,7 +21,7 @@
 "{ Package: 'stx:libjava' }"
 
 JavaBehavior subclass:#JavaClass
-	instanceVariableNames:'classLoader fullName sourceFile sourceString binaryFilePath
+	instanceVariableNames:'classLoader fullName sourceFile sourceString classfileBytes
 		fields staticFields annotations protectionDomain signatureJ'
 	classVariableNames:'ArgumentConversionErrorSignal OrderOfClassInits'
 	poolDictionaries:'JavaConstants'
@@ -588,10 +588,6 @@
     annotations := something.
 !
 
-binaryFile
-    ^ binaryFilePath
-!
-
 classLoader
     ^ classLoader
 !
@@ -602,6 +598,10 @@
     "Modified: / 18-02-2012 / 20:21:03 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 !
 
+classfileBytes
+    ^ classfileBytes
+!
+
 compiledMethodAt:name
     "redefined to find the constructor"
 
@@ -2079,8 +2079,11 @@
     "Created: 15.4.1996 / 16:42:52 / cg"
 !
 
-setBinaryFilePath:aPathName
-    binaryFilePath := aPathName
+setClassfileBytes: aByteArray
+    self assert: aByteArray isByteArray.    
+    classfileBytes := aByteArray
+
+    "Created: / 29-03-2013 / 23:57:24 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 !
 
 setFields:f
--- a/JavaClassReader.st	Fri Mar 29 23:37:04 2013 +0000
+++ b/JavaClassReader.st	Sun Mar 31 19:25:00 2013 +0100
@@ -110,6 +110,7 @@
     "Created: 3.8.1997 / 18:17:21 / cg"
 ! !
 
+
 !JavaClassReader class methodsFor:'constants'!
 
 fileMajorVersions
@@ -271,7 +272,7 @@
      The JavaClass is NOT installed as global and unresolved
      refs are NOT patched."
     
-    | inStream  javaClass |
+    | inStream |
 
     [
         JavaVM commonOpenStreamUsing:[ inStream := aFilename asFilename readStream ]
@@ -282,20 +283,16 @@
         ^ nil
     ].
 
-    [
-        javaClass := self readStream:inStream ignoring:classesBeingLoaded.
-        (javaClass notNil and:[ javaClass isJavaClass ]) ifTrue:[
-            javaClass setBinaryFilePath:(inStream pathName).
-        ].
+    ^[
+        self readStream:inStream ignoring:classesBeingLoaded.
     ] ensure:[
         inStream close.
     ].
-    ^ javaClass.
 
     "Created: / 15-04-1996 / 14:58:53 / cg"
     "Modified: / 09-05-1998 / 01:44:24 / cg"
     "Modified: / 14-08-2012 / 02:17:26 / jv"
-    "Modified: / 14-08-2012 / 17:08:22 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    "Modified: / 29-03-2013 / 23:54:03 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 !
 
 readStream: aStream 
--- a/JavaMethod.st	Fri Mar 29 23:37:04 2013 +0000
+++ b/JavaMethod.st	Sun Mar 31 19:25:00 2013 +0100
@@ -20,7 +20,7 @@
 "
 "{ Package: 'stx:libjava' }"
 
-CompiledCode subclass:#JavaMethod
+CompiledCode variableSubclass:#JavaMethod
 	instanceVariableNames:'accessFlags selector javaClass descriptor signature lookupObject
 		lineNumberTable localVariableTable sourceLineNumber annotations'
 	classVariableNames:'AbstractMethodInvokationSignal SignatureTypeCodes
@@ -58,7 +58,6 @@
 "
 ! !
 
-
 !JavaMethod class methodsFor:'initialization'!
 
 initialize
@@ -129,7 +128,6 @@
     "Created: / 14-12-2010 / 20:58:47 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 ! !
 
-
 !JavaMethod class methodsFor:'instance creation'!
 
 fromMethod:aJavaMethod
@@ -150,7 +148,6 @@
     "Created: / 16.10.1998 / 01:13:02 / cg"
 ! !
 
-
 !JavaMethod class methodsFor:'Signal constants'!
 
 abstractMethodInvokationSignal
@@ -187,7 +184,6 @@
     "Created: / 27.1.1998 / 21:50:05 / cg"
 ! !
 
-
 !JavaMethod class methodsFor:'misc'!
 
 forceByteCodeDisplay
@@ -234,7 +230,6 @@
     "Created: / 23-02-2011 / 12:56:24 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 ! !
 
-
 !JavaMethod class methodsFor:'signature parsing'!
 
 argSigArrayFromSignature:aSignature
@@ -784,7 +779,6 @@
     "Modified: / 8.1.1998 / 19:09:31 / cg"
 ! !
 
-
 !JavaMethod methodsFor:'* As yet uncategorized *'!
 
 annotationIndexOf:aSymbol
@@ -794,6 +788,12 @@
     "Created: / 24-02-2012 / 16:06:26 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 !
 
+messagesSentToSuper
+    ^#()
+
+    "Created: / 30-03-2013 / 09:59:08 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
 sends:symbol1 or:symbol2
 
     ^false
@@ -806,7 +806,6 @@
     "Created: / 02-12-2011 / 23:05:29 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 ! !
 
-
 !JavaMethod methodsFor:'accessing'!
 
 accessFlags
@@ -1340,7 +1339,6 @@
     "Created: / 18-10-2010 / 19:11:55 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 ! !
 
-
 !JavaMethod methodsFor:'compiler interface'!
 
 flushCode
@@ -1383,7 +1381,6 @@
     "Created: / 26-10-2010 / 23:42:49 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 ! !
 
-
 !JavaMethod methodsFor:'debugging'!
 
 breakPoint
@@ -1480,7 +1477,6 @@
     "Created: / 12.1.1998 / 20:04:57 / cg"
 ! !
 
-
 !JavaMethod methodsFor:'decompiling'!
 
 decompileSourceTo:aStream
@@ -1592,7 +1588,6 @@
     "Created: / 13.1.1998 / 15:03:05 / cg"
 ! !
 
-
 !JavaMethod methodsFor:'error handling'!
 
 errorInvalidClassRefAt: index
@@ -1696,7 +1691,6 @@
     "Created: / 07-09-2011 / 14:17:36 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 ! !
 
-
 !JavaMethod methodsFor:'executing'!
 
 valueWithReceiver:anObject arguments:argArray selector:aSymbol search:aClass sender:virtualSender
@@ -1710,7 +1704,6 @@
     "Created: / 31-10-2012 / 23:09:06 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 ! !
 
-
 !JavaMethod methodsFor:'initialization'!
 
 resolve
@@ -1879,7 +1872,6 @@
     "Modified (format): / 14-08-2011 / 19:41:18 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 ! !
 
-
 !JavaMethod methodsFor:'inspecting'!
 
 inspectorExtraAttributes
@@ -1895,7 +1887,6 @@
     "Modified: / 22-03-2011 / 21:13:49 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 ! !
 
-
 !JavaMethod methodsFor:'interpretation'!
 
 interpretWithReceiver: receiver 
@@ -1945,7 +1936,6 @@
     "Created: / 24-02-2011 / 22:04:37 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 ! !
 
-
 !JavaMethod methodsFor:'methodref interchangability'!
 
 homeMethod
@@ -1962,7 +1952,6 @@
     ]
 ! !
 
-
 !JavaMethod methodsFor:'misc'!
 
 fromMethod:aJavaMethod
@@ -1992,7 +1981,6 @@
     "Created: / 6.1.1998 / 18:19:48 / cg"
 ! !
 
-
 !JavaMethod methodsFor:'printing & storing'!
 
 displayString
@@ -2143,7 +2131,6 @@
 
 ! !
 
-
 !JavaMethod methodsFor:'queries'!
 
 handlerFor:anException at:pc
@@ -2595,7 +2582,6 @@
     "Modified: / 16.10.1998 / 13:42:10 / cg"
 ! !
 
-
 !JavaMethod methodsFor:'signature parsing'!
 
 XXXspecWithArgsFromSignature:aSignature withName:name in:aPackage
@@ -2622,7 +2608,6 @@
     "Created: / 8.1.1998 / 19:17:58 / cg"
 ! !
 
-
 !JavaMethod methodsFor:'testing'!
 
 isSynthetic
@@ -2631,7 +2616,6 @@
     "Created: / 18-10-2010 / 19:09:26 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 ! !
 
-
 !JavaMethod class methodsFor:'documentation'!
 
 version
--- a/JavaNativeMethod.st	Fri Mar 29 23:37:04 2013 +0000
+++ b/JavaNativeMethod.st	Sun Mar 31 19:25:00 2013 +0100
@@ -152,6 +152,14 @@
     ^ '$Changeset: <not expanded> $'
 ! !
 
+!JavaNativeMethod methodsFor:'* As yet uncategorized *'!
+
+messagesSentToSuper
+    ^#()
+
+    "Created: / 30-03-2013 / 09:58:38 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+
 !JavaNativeMethod methodsFor:'accessing'!
 
 nCalls
--- a/JavaNativeMethodImpl_OpenJDK6.st	Fri Mar 29 23:37:04 2013 +0000
+++ b/JavaNativeMethodImpl_OpenJDK6.st	Sun Mar 31 19:25:00 2013 +0100
@@ -13762,6 +13762,17 @@
     "Modified: / 04-11-2011 / 21:50:31 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 ! !
 
+!JavaNativeMethodImpl_OpenJDK6 class methodsFor:'native - stx.libjava.tools.compiler.ecj'!
+
+_stx_libjava_tools_compiler_ecj_CompilerEnvironment_findClassBytesForClass0: this _: jclass 
+
+    <javanative: 'stx/libjava/tools/compiler/ecj/CompilerEnvironment' name: 'findClassBytesForClass0(Ljava/lang/Class;)[B'>
+
+    ^(JavaVM reflection classForJavaClassObject: jclass) classfileBytes
+
+    "Modified: / 30-03-2013 / 00:43:20 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+
 !JavaNativeMethodImpl_OpenJDK6 class methodsFor:'native - sun.awt'!
 
 _sun_awt_DebugSettings_setCTracingOn: this _: a1 
--- a/Make.proto	Fri Mar 29 23:37:04 2013 +0000
+++ b/Make.proto	Sun Mar 31 19:25:00 2013 +0100
@@ -21,7 +21,7 @@
 INCLUDE_TOP=$(TOP)/..
 
 # subdirectories where targets are to be made:
-SUBDIRS=
+SUBDIRS= tools experiments
 
 
 # subdirectories where Makefiles are to be made:
@@ -34,7 +34,7 @@
 # add the path(es) here:,
 # ********** OPTIONAL: MODIFY the next lines ***
 # LOCALINCLUDES=-Ifoo -Ibar
-LOCALINCLUDES=-I$(ZLIB_DIR) -Isupport/fdlibm -I$(INCLUDE_TOP)/stx/libbasic -I$(INCLUDE_TOP)/stx/libbasic3 -I$(INCLUDE_TOP)/stx/libview2 -I$(INCLUDE_TOP)/stx/libwidg -I$(INCLUDE_TOP)/stx/libhtml -I$(INCLUDE_TOP)/stx/libtool -I$(INCLUDE_TOP)/stx/libbasic2 -I$(INCLUDE_TOP)/stx/goodies/sunit -I$(INCLUDE_TOP)/stx/libcomp -I$(INCLUDE_TOP)/stx/libview -I$(INCLUDE_TOP)/stx/libwidg2
+LOCALINCLUDES=-I$(ZLIB_DIR) -Isupport/fdlibm -I$(INCLUDE_TOP)/stx/libbasic -I$(INCLUDE_TOP)/stx/libbasic3 -I$(INCLUDE_TOP)/stx/libview2 -I$(INCLUDE_TOP)/stx/goodies/petitparser -I$(INCLUDE_TOP)/stx/libtool -I$(INCLUDE_TOP)/stx/libbasic2 -I$(INCLUDE_TOP)/stx/goodies/sunit -I$(INCLUDE_TOP)/stx/libcomp -I$(INCLUDE_TOP)/stx/libview -I$(INCLUDE_TOP)/stx/libwidg2
 
 
 # if you need any additional defines for embedded C code,
@@ -138,25 +138,29 @@
 # add more postMake actions here
 postMake:: cleanjunk
 
-prereq: $(REQUIRED_SUPPORT_DIRS)
-	cd ../libwidg2 && $(MAKE) "CFLAGS_LOCAL=$(GLOBALDEFINES)"
-	cd ../libhtml && $(MAKE) "CFLAGS_LOCAL=$(GLOBALDEFINES)"
-	cd ../libdb/libsqlite && $(MAKE) "CFLAGS_LOCAL=$(GLOBALDEFINES)"
+# build all mandatory prerequisite packages (containing superclasses) for this package
+prereq:
 	cd ../libbasic && $(MAKE) "CFLAGS_LOCAL=$(GLOBALDEFINES)"
-	cd ../libwidg && $(MAKE) "CFLAGS_LOCAL=$(GLOBALDEFINES)"
-	cd ../libui && $(MAKE) "CFLAGS_LOCAL=$(GLOBALDEFINES)"
+	cd ../libbasic2 && $(MAKE) "CFLAGS_LOCAL=$(GLOBALDEFINES)"
+	cd ../libcomp && $(MAKE) "CFLAGS_LOCAL=$(GLOBALDEFINES)"
+	cd ../libbasic3 && $(MAKE) "CFLAGS_LOCAL=$(GLOBALDEFINES)"
 	cd ../libview && $(MAKE) "CFLAGS_LOCAL=$(GLOBALDEFINES)"
-	cd ../libcomp && $(MAKE) "CFLAGS_LOCAL=$(GLOBALDEFINES)"
-	cd ../libbasic2 && $(MAKE) "CFLAGS_LOCAL=$(GLOBALDEFINES)"
+	cd ../libboss && $(MAKE) "CFLAGS_LOCAL=$(GLOBALDEFINES)"
+	cd ../libui && $(MAKE) "CFLAGS_LOCAL=$(GLOBALDEFINES)"
 	cd ../libview2 && $(MAKE) "CFLAGS_LOCAL=$(GLOBALDEFINES)"
 	cd ../goodies/sunit && $(MAKE) "CFLAGS_LOCAL=$(GLOBALDEFINES)"
-	cd ../libdb/libodbc && $(MAKE) "CFLAGS_LOCAL=$(GLOBALDEFINES)"
-	cd ../libboss && $(MAKE) "CFLAGS_LOCAL=$(GLOBALDEFINES)"
-	cd ../libbasic3 && $(MAKE) "CFLAGS_LOCAL=$(GLOBALDEFINES)"
+	cd ../libwidg && $(MAKE) "CFLAGS_LOCAL=$(GLOBALDEFINES)"
+	cd ../libhtml && $(MAKE) "CFLAGS_LOCAL=$(GLOBALDEFINES)"
+	cd ../libwidg2 && $(MAKE) "CFLAGS_LOCAL=$(GLOBALDEFINES)"
 	cd ../libtool && $(MAKE) "CFLAGS_LOCAL=$(GLOBALDEFINES)"
 
 
 
+# build all packages containing referenced classes for this package
+# they are nor needed to compile the package
+references:
+
+
 cleanjunk::
 	-rm -f *.s *.s2
 
--- a/Make.spec	Fri Mar 29 23:37:04 2013 +0000
+++ b/Make.spec	Sun Mar 31 19:25:00 2013 +0100
@@ -50,12 +50,10 @@
 STCWARNINGS=-warnNonStandard
 
 COMMON_CLASSES= \
-	JavaVMData \
 	GroovyCompiler \
 	GroovyEvaluator \
 	GroovyLanguage \
 	GroovySourceFileWriter \
-	Java \
 	JavaAnnotation \
 	JavaAnnotationContainer \
 	JavaAnnotationDefault \
@@ -65,8 +63,10 @@
 	JavaByte \
 	JavaByteCodeProcessor \
 	JavaClassAccessor \
-	JavaClassRegistry \
+	JavaClassQuery \
 	JavaClassReloader \
+	JavaCodeLibraryOrBundle \
+	JavaCompiler_Eclipse \
 	JavaConstantPool \
 	JavaConstants \
 	JavaContext \
@@ -75,15 +75,19 @@
 	JavaError \
 	JavaExceptionTableEntry \
 	JavaField \
+	JavaFinalizationRegistry \
 	JavaLanguage \
 	JavaLibraries \
 	JavaLocalVariableTable \
 	JavaLocalVariableTableEntry \
 	JavaLookup \
 	JavaMathSupport \
+	JavaMetaclass \
+	JavaMirror \
 	JavaMonitor \
 	JavaNameAndType2 \
 	JavaNativeMemory \
+	JavaNioSupport \
 	JavaObject \
 	JavaObjectDictionary \
 	JavaPackage \
@@ -101,6 +105,7 @@
 	JavaTopView \
 	JavaUnresolvedConstant \
 	JavaUtilities \
+	JavaVMData \
 	JavaView \
 	JavaZipSupport \
 	PPJavaNode \
@@ -110,6 +115,8 @@
 	SmalltalkAppletContext \
 	SmalltalkAppletStub \
 	stx_libjava \
+	GroovyMetaclass \
+	Java \
 	JavaAnnotationArrayValue \
 	JavaAnnotationClassValue \
 	JavaAnnotationEnumValue \
@@ -123,6 +130,9 @@
 	JavaClassContentRef2 \
 	JavaClassReader \
 	JavaClassRef2 \
+	JavaClassRegistry \
+	JavaCodeBundle \
+	JavaCodeLibrary \
 	JavaEmbeddedFrameView \
 	JavaFieldAnnotationContainer \
 	JavaFieldDescriptor \
@@ -132,6 +142,7 @@
 	JavaMethodAnnotationContainer \
 	JavaMethodDeclarationNode \
 	JavaMethodDescriptor \
+	JavaNativeMethodImpl_OpenJDK6 \
 	JavaStringRef2 \
 	JavaUnhandledExceptionError \
 	JavaUnresolvedClassConstant \
@@ -141,50 +152,37 @@
 	ProxyMethodConditionNode \
 	ProxyMethodGuardNode \
 	ProxyMethodInvocationNode \
+	ProxyMethodJavaFieldAccessor \
 	JavaByteCodePreresolver \
 	JavaClass \
+	JavaClassPathBundle \
 	JavaFieldRef2 \
 	JavaMethodRef2 \
 	JavaMethodWithException \
+	JavaNativeMethodImpl_OpenJDK7 \
+	JavaNativeMethodImpl_SunJDK6 \
 	ProxyMethodAndNode \
 	ProxyMethodBlockInvocationNode \
+	ProxyMethodJavaFieldGetter \
+	ProxyMethodJavaFieldSetter \
 	ProxyMethodMethodInvocationNode \
 	ProxyMethodTypeCheckNode \
 	GroovyClass \
 	JavaInterfaceMethodRef2 \
 	JavaMethodWithHandler \
+	JavaNativeMethodImpl_SunJDK7 \
 	ProxyMethodJavaMethodInvocationNode \
 	ProxyMethodJavaTypeCheckNode \
 	JavaNativeMethod \
-	ProxyMethodJavaFieldAccessor \
-	ProxyMethodJavaFieldGetter \
-	ProxyMethodJavaFieldSetter \
-	JavaCompiler_Eclipse \
-	JavaMetaclass \
-	GroovyMetaclass \
-	JavaNioSupport \
-	JavaFinalizationRegistry \
-	JavaMirror \
-	JavaClassQuery \
-	JavaCodeLibraryOrBundle \
-	JavaCodeBundle \
-	JavaClassPathBundle \
-	JavaCodeLibrary \
-	JavaNativeMethodImpl_OpenJDK6 \
-	JavaNativeMethodImpl_SunJDK6 \
-	JavaNativeMethodImpl_OpenJDK7 \
-	JavaNativeMethodImpl_SunJDK7 \
 
 
 
 
 COMMON_OBJS= \
-    $(OUTDIR_SLASH)JavaVMData.$(O) \
     $(OUTDIR_SLASH)GroovyCompiler.$(O) \
     $(OUTDIR_SLASH)GroovyEvaluator.$(O) \
     $(OUTDIR_SLASH)GroovyLanguage.$(O) \
     $(OUTDIR_SLASH)GroovySourceFileWriter.$(O) \
-    $(OUTDIR_SLASH)Java.$(O) \
     $(OUTDIR_SLASH)JavaAnnotation.$(O) \
     $(OUTDIR_SLASH)JavaAnnotationContainer.$(O) \
     $(OUTDIR_SLASH)JavaAnnotationDefault.$(O) \
@@ -194,8 +192,10 @@
     $(OUTDIR_SLASH)JavaByte.$(O) \
     $(OUTDIR_SLASH)JavaByteCodeProcessor.$(O) \
     $(OUTDIR_SLASH)JavaClassAccessor.$(O) \
-    $(OUTDIR_SLASH)JavaClassRegistry.$(O) \
+    $(OUTDIR_SLASH)JavaClassQuery.$(O) \
     $(OUTDIR_SLASH)JavaClassReloader.$(O) \
+    $(OUTDIR_SLASH)JavaCodeLibraryOrBundle.$(O) \
+    $(OUTDIR_SLASH)JavaCompiler_Eclipse.$(O) \
     $(OUTDIR_SLASH)JavaConstantPool.$(O) \
     $(OUTDIR_SLASH)JavaConstants.$(O) \
     $(OUTDIR_SLASH)JavaContext.$(O) \
@@ -204,15 +204,19 @@
     $(OUTDIR_SLASH)JavaError.$(O) \
     $(OUTDIR_SLASH)JavaExceptionTableEntry.$(O) \
     $(OUTDIR_SLASH)JavaField.$(O) \
+    $(OUTDIR_SLASH)JavaFinalizationRegistry.$(O) \
     $(OUTDIR_SLASH)JavaLanguage.$(O) \
     $(OUTDIR_SLASH)JavaLibraries.$(O) \
     $(OUTDIR_SLASH)JavaLocalVariableTable.$(O) \
     $(OUTDIR_SLASH)JavaLocalVariableTableEntry.$(O) \
     $(OUTDIR_SLASH)JavaLookup.$(O) \
     $(OUTDIR_SLASH)JavaMathSupport.$(O) \
+    $(OUTDIR_SLASH)JavaMetaclass.$(O) \
+    $(OUTDIR_SLASH)JavaMirror.$(O) \
     $(OUTDIR_SLASH)JavaMonitor.$(O) \
     $(OUTDIR_SLASH)JavaNameAndType2.$(O) \
     $(OUTDIR_SLASH)JavaNativeMemory.$(O) \
+    $(OUTDIR_SLASH)JavaNioSupport.$(O) \
     $(OUTDIR_SLASH)JavaObject.$(O) \
     $(OUTDIR_SLASH)JavaObjectDictionary.$(O) \
     $(OUTDIR_SLASH)JavaPackage.$(O) \
@@ -230,6 +234,7 @@
     $(OUTDIR_SLASH)JavaTopView.$(O) \
     $(OUTDIR_SLASH)JavaUnresolvedConstant.$(O) \
     $(OUTDIR_SLASH)JavaUtilities.$(O) \
+    $(OUTDIR_SLASH)JavaVMData.$(O) \
     $(OUTDIR_SLASH)JavaView.$(O) \
     $(OUTDIR_SLASH)JavaZipSupport.$(O) \
     $(OUTDIR_SLASH)PPJavaNode.$(O) \
@@ -239,6 +244,8 @@
     $(OUTDIR_SLASH)SmalltalkAppletContext.$(O) \
     $(OUTDIR_SLASH)SmalltalkAppletStub.$(O) \
     $(OUTDIR_SLASH)stx_libjava.$(O) \
+    $(OUTDIR_SLASH)GroovyMetaclass.$(O) \
+    $(OUTDIR_SLASH)Java.$(O) \
     $(OUTDIR_SLASH)JavaAnnotationArrayValue.$(O) \
     $(OUTDIR_SLASH)JavaAnnotationClassValue.$(O) \
     $(OUTDIR_SLASH)JavaAnnotationEnumValue.$(O) \
@@ -252,6 +259,9 @@
     $(OUTDIR_SLASH)JavaClassContentRef2.$(O) \
     $(OUTDIR_SLASH)JavaClassReader.$(O) \
     $(OUTDIR_SLASH)JavaClassRef2.$(O) \
+    $(OUTDIR_SLASH)JavaClassRegistry.$(O) \
+    $(OUTDIR_SLASH)JavaCodeBundle.$(O) \
+    $(OUTDIR_SLASH)JavaCodeLibrary.$(O) \
     $(OUTDIR_SLASH)JavaEmbeddedFrameView.$(O) \
     $(OUTDIR_SLASH)JavaFieldAnnotationContainer.$(O) \
     $(OUTDIR_SLASH)JavaFieldDescriptor.$(O) \
@@ -261,6 +271,7 @@
     $(OUTDIR_SLASH)JavaMethodAnnotationContainer.$(O) \
     $(OUTDIR_SLASH)JavaMethodDeclarationNode.$(O) \
     $(OUTDIR_SLASH)JavaMethodDescriptor.$(O) \
+    $(OUTDIR_SLASH)JavaNativeMethodImpl_OpenJDK6.$(O) \
     $(OUTDIR_SLASH)JavaStringRef2.$(O) \
     $(OUTDIR_SLASH)JavaUnhandledExceptionError.$(O) \
     $(OUTDIR_SLASH)JavaUnresolvedClassConstant.$(O) \
@@ -270,39 +281,28 @@
     $(OUTDIR_SLASH)ProxyMethodConditionNode.$(O) \
     $(OUTDIR_SLASH)ProxyMethodGuardNode.$(O) \
     $(OUTDIR_SLASH)ProxyMethodInvocationNode.$(O) \
+    $(OUTDIR_SLASH)ProxyMethodJavaFieldAccessor.$(O) \
     $(OUTDIR_SLASH)JavaByteCodePreresolver.$(O) \
     $(OUTDIR_SLASH)JavaClass.$(O) \
+    $(OUTDIR_SLASH)JavaClassPathBundle.$(O) \
     $(OUTDIR_SLASH)JavaFieldRef2.$(O) \
     $(OUTDIR_SLASH)JavaMethodRef2.$(O) \
     $(OUTDIR_SLASH)JavaMethodWithException.$(O) \
+    $(OUTDIR_SLASH)JavaNativeMethodImpl_OpenJDK7.$(O) \
+    $(OUTDIR_SLASH)JavaNativeMethodImpl_SunJDK6.$(O) \
     $(OUTDIR_SLASH)ProxyMethodAndNode.$(O) \
     $(OUTDIR_SLASH)ProxyMethodBlockInvocationNode.$(O) \
+    $(OUTDIR_SLASH)ProxyMethodJavaFieldGetter.$(O) \
+    $(OUTDIR_SLASH)ProxyMethodJavaFieldSetter.$(O) \
     $(OUTDIR_SLASH)ProxyMethodMethodInvocationNode.$(O) \
     $(OUTDIR_SLASH)ProxyMethodTypeCheckNode.$(O) \
     $(OUTDIR_SLASH)GroovyClass.$(O) \
     $(OUTDIR_SLASH)JavaInterfaceMethodRef2.$(O) \
     $(OUTDIR_SLASH)JavaMethodWithHandler.$(O) \
+    $(OUTDIR_SLASH)JavaNativeMethodImpl_SunJDK7.$(O) \
     $(OUTDIR_SLASH)ProxyMethodJavaMethodInvocationNode.$(O) \
     $(OUTDIR_SLASH)ProxyMethodJavaTypeCheckNode.$(O) \
     $(OUTDIR_SLASH)JavaNativeMethod.$(O) \
-    $(OUTDIR_SLASH)ProxyMethodJavaFieldAccessor.$(O) \
-    $(OUTDIR_SLASH)ProxyMethodJavaFieldGetter.$(O) \
-    $(OUTDIR_SLASH)ProxyMethodJavaFieldSetter.$(O) \
-    $(OUTDIR_SLASH)JavaCompiler_Eclipse.$(O) \
-    $(OUTDIR_SLASH)JavaMetaclass.$(O) \
-    $(OUTDIR_SLASH)GroovyMetaclass.$(O) \
-    $(OUTDIR_SLASH)JavaNioSupport.$(O) \
-    $(OUTDIR_SLASH)JavaFinalizationRegistry.$(O) \
-    $(OUTDIR_SLASH)JavaMirror.$(O) \
-    $(OUTDIR_SLASH)JavaClassQuery.$(O) \
-    $(OUTDIR_SLASH)JavaCodeLibraryOrBundle.$(O) \
-    $(OUTDIR_SLASH)JavaCodeBundle.$(O) \
-    $(OUTDIR_SLASH)JavaClassPathBundle.$(O) \
-    $(OUTDIR_SLASH)JavaCodeLibrary.$(O) \
-    $(OUTDIR_SLASH)JavaNativeMethodImpl_OpenJDK6.$(O) \
-    $(OUTDIR_SLASH)JavaNativeMethodImpl_SunJDK6.$(O) \
-    $(OUTDIR_SLASH)JavaNativeMethodImpl_OpenJDK7.$(O) \
-    $(OUTDIR_SLASH)JavaNativeMethodImpl_SunJDK7.$(O) \
     $(OUTDIR_SLASH)extensions.$(O) \
 
 
--- a/abbrev.stc	Fri Mar 29 23:37:04 2013 +0000
+++ b/abbrev.stc	Sun Mar 31 19:25:00 2013 +0100
@@ -1,13 +1,11 @@
 # automagically generated by the project definition
 # this file is needed for stc to be able to compile modules independently.
 # it provides information about a classes filename, category and especially namespace.
-JavaVMData JavaVMData stx:libjava 'Languages-Java-Support' 0
-JavaRefsAndConstantPoolTestCase JavaRefsAndConstantPoolTestCase stx:libjava 'Languages-Java-Tests-RuntimeConstantPool' 1
 GroovyCompiler GroovyCompiler stx:libjava 'Languages-Groovy-Compiler' 0
 GroovyEvaluator GroovyEvaluator stx:libjava 'Languages-Groovy-Compiler' 0
 GroovyLanguage GroovyLanguage stx:libjava 'Languages-Groovy-Support' 1
 GroovySourceFileWriter GroovySourceFileWriter stx:libjava 'Languages-Groovy-Support' 0
-Java Java stx:libjava 'Languages-Java-Support' 0
+JUnitTestCaseProxy JUnitTestCaseProxy stx:libjava 'Languages-Java-Tests-Proxies' 3
 JavaAnnotation JavaAnnotation stx:libjava 'Languages-Java-Reader-Support' 0
 JavaAnnotationContainer JavaAnnotationContainer stx:libjava 'Languages-Java-Annotations' 1
 JavaAnnotationDefault JavaAnnotationDefault stx:libjava 'Languages-Java-Annotations' 1
@@ -16,14 +14,17 @@
 JavaAntProjectResource JavaAntProjectResource stx:libjava 'Languages-Java-Tests' 2
 JavaArray JavaArray stx:libjava 'Languages-Java-Classes' 1
 JavaByte JavaByte stx:libjava 'Languages-Java-Support' 0
-JavaByteCodeProcessorTests JavaByteCodeProcessorTests stx:libjava 'Languages-Java-Tests' 1
 JavaByteCodeDisassemblerTests JavaByteCodeDisassemblerTests stx:libjava 'Languages-Java-Tests' 1
 JavaByteCodeProcessor JavaByteCodeProcessor stx:libjava 'Languages-Java-Bytecode' 0
+JavaByteCodeProcessorTests JavaByteCodeProcessorTests stx:libjava 'Languages-Java-Tests' 1
 JavaClassAccessor JavaClassAccessor stx:libjava 'Languages-Java-Classes' 0
 JavaClassLoadingTests JavaClassLoadingTests stx:libjava 'Languages-Java-Tests-ClassLoading' 1
+JavaClassQuery JavaClassQuery stx:libjava 'Languages-Java-Classes' 1
+JavaClassReaderTests JavaClassReaderTests stx:libjava 'Languages-Java-Tests-RuntimeConstantPool' 1
 JavaClassRefTests JavaClassRefTests stx:libjava 'Languages-Java-Tests-RuntimeConstantPool' 1
-JavaClassRegistry JavaClassRegistry stx:libjava 'Languages-Java-Support' 0
 JavaClassReloader JavaClassReloader stx:libjava 'Languages-Java-Support' 0
+JavaCodeLibraryOrBundle JavaCodeLibraryOrBundle stx:libjava 'Languages-Java-Support-Libraries' 0
+JavaCompiler_Eclipse JavaCompiler_Eclipse stx:libjava 'Languages-Java-Tools-Eclipse' 0
 JavaConstantPool JavaConstantPool stx:libjava 'Languages-Java-Reader-Support' 0
 JavaConstants JavaConstants stx:libjava 'Languages-Java-Support' 0
 JavaContext JavaContext stx:libjava 'Languages-Java-Support' 0
@@ -31,10 +32,11 @@
 JavaDescriptor JavaDescriptor stx:libjava 'Languages-Java-Support' 0
 JavaError JavaError stx:libjava 'Languages-Java-Support' 1
 JavaExceptionTableEntry JavaExceptionTableEntry stx:libjava 'Languages-Java-Support' 0
+JavaExceptionTests JavaExceptionTests stx:libjava 'Languages-Java-Tests' 1
 JavaField JavaField stx:libjava 'Languages-Java-Reader-Support' 0
 JavaFieldRefTests JavaFieldRefTests stx:libjava 'Languages-Java-Tests-RuntimeConstantPool' 1
+JavaFinalizationRegistry JavaFinalizationRegistry stx:libjava 'Languages-Java-Support' 0
 JavaFreshlyInitializedResource JavaFreshlyInitializedResource stx:libjava 'Languages-Java-Tests' 1
-JavaInitializedResource JavaInitializedResource stx:libjava 'Languages-Java-Tests' 2
 JavaInterfaceMethodRefTests JavaInterfaceMethodRefTests stx:libjava 'Languages-Java-Tests-RuntimeConstantPool' 1
 JavaJUnitTests JavaJUnitTests stx:libjava 'Languages-Java-Tests-Libraries' 1
 JavaLanguage JavaLanguage stx:libjava 'Languages-Java-Support' 1
@@ -43,12 +45,19 @@
 JavaLocalVariableTable JavaLocalVariableTable stx:libjava 'Languages-Java-Support' 0
 JavaLocalVariableTableEntry JavaLocalVariableTableEntry stx:libjava 'Languages-Java-Support' 0
 JavaLookup JavaLookup stx:libjava 'Languages-Java-Interop' 0
+JavaLookupResolutionAlgorithmTests JavaLookupResolutionAlgorithmTests stx:libjava 'Languages-Java-Tests-Interop' 1
+JavaLookupTests JavaLookupTests stx:libjava 'Languages-Java-Tests-Interop' 1
+JavaLookupTestsResource JavaLookupTestsResource stx:libjava 'Languages-Java-Tests-Interop' 3
 JavaMathSupport JavaMathSupport stx:libjava 'Languages-Java-Support-Native' 0
+JavaMetaclass JavaMetaclass stx:libjava 'Languages-Java-Classes' 0
 JavaMethodRefTests JavaMethodRefTests stx:libjava 'Languages-Java-Tests-RuntimeConstantPool' 1
+JavaMirror JavaMirror stx:libjava 'Languages-Java-Classes' 0
 JavaMonitor JavaMonitor stx:libjava 'Languages-Java-Support' 0
 JavaMonitorsTests JavaMonitorsTests stx:libjava 'Languages-Java-Tests' 1
 JavaNameAndType2 JavaNameAndType2 stx:libjava 'Languages-Java-Reader-Support-new' 0
 JavaNativeMemory JavaNativeMemory stx:libjava 'Languages-Java-Support' 0
+JavaNativeMemoryTests JavaNativeMemoryTests stx:libjava 'Languages-Java-Tests' 1
+JavaNioSupport JavaNioSupport stx:libjava 'Languages-Java-Support-Native' 0
 JavaObject JavaObject stx:libjava 'Languages-Java-Classes' 0
 JavaObjectDictionary JavaObjectDictionary stx:libjava 'Languages-Java-Support' 0
 JavaPackage JavaPackage stx:libjava 'Languages-Java-Support' 0
@@ -56,6 +65,7 @@
 JavaProcess JavaProcess stx:libjava 'Languages-Java-Classes' 0
 JavaRef2 JavaRef2 stx:libjava 'Languages-Java-Reader-Support-new' 0
 JavaRefMock JavaRefMock stx:libjava 'Languages-Java-Tests-RuntimeConstantPool' 0
+JavaRefsAndConstantPoolTestCase JavaRefsAndConstantPoolTestCase stx:libjava 'Languages-Java-Tests-RuntimeConstantPool' 1
 JavaRelease JavaRelease stx:libjava 'Languages-Java-Support' 1
 JavaResolver JavaResolver stx:libjava 'Languages-Java-Reader-Support-new' 0
 JavaRuntimeConstantPoolTests JavaRuntimeConstantPoolTests stx:libjava 'Languages-Java-Tests-RuntimeConstantPool' 1
@@ -71,6 +81,7 @@
 JavaUTF8Tests JavaUTF8Tests stx:libjava 'Languages-Java-Tests' 1
 JavaUnresolvedConstant JavaUnresolvedConstant stx:libjava 'Languages-Java-Reader-Support' 0
 JavaUtilities JavaUtilities stx:libjava 'Languages-Java-Utilities' 0
+JavaVMData JavaVMData stx:libjava 'Languages-Java-Support' 0
 JavaView JavaView stx:libjava 'Languages-Java-Views-Support' 2
 JavaZipSupport JavaZipSupport stx:libjava 'Languages-Java-Support-Native' 0
 PPJavaNode PPJavaNode stx:libjava 'Languages-Java-AST' 0
@@ -81,6 +92,8 @@
 SmalltalkAppletStub SmalltalkAppletStub stx:libjava 'Languages-Java-Views-Support' 0
 TestletTestCaseProxy TestletTestCaseProxy stx:libjava 'Languages-Java-Tests-Proxies' 3
 stx_libjava stx_libjava stx:libjava '* Projects & Packages *' 3
+GroovyMetaclass GroovyMetaclass stx:libjava 'Languages-Groovy-Classes' 0
+Java Java stx:libjava 'Languages-Java-Support' 0
 JavaAnnotationArrayValue JavaAnnotationArrayValue stx:libjava 'Languages-Java-Reader-Support' 0
 JavaAnnotationClassValue JavaAnnotationClassValue stx:libjava 'Languages-Java-Reader-Support' 0
 JavaAnnotationEnumValue JavaAnnotationEnumValue stx:libjava 'Languages-Java-Reader-Support' 0
@@ -94,15 +107,20 @@
 JavaClassContentRef2 JavaClassContentRef2 stx:libjava 'Languages-Java-Reader-Support-new' 0
 JavaClassReader JavaClassReader stx:libjava 'Languages-Java-Support' 0
 JavaClassRef2 JavaClassRef2 stx:libjava 'Languages-Java-Reader-Support-new' 0
+JavaClassRegistry JavaClassRegistry stx:libjava 'Languages-Java-Support' 0
+JavaCodeBundle JavaCodeBundle stx:libjava 'Languages-Java-Support-Libraries' 0
+JavaCodeLibrary JavaCodeLibrary stx:libjava 'Languages-Java-Support-Libraries' 0
 JavaEmbeddedFrameView JavaEmbeddedFrameView stx:libjava 'Languages-Java-Views-Support' 2
 JavaFieldAnnotationContainer JavaFieldAnnotationContainer stx:libjava 'Languages-Java-Annotations' 1
 JavaFieldDescriptor JavaFieldDescriptor stx:libjava 'Languages-Java-Support' 0
 JavaFieldDescriptorWithUnionType JavaFieldDescriptorWithUnionType stx:libjava 'Languages-Java-Support' 0
+JavaInitializedResource JavaInitializedResource stx:libjava 'Languages-Java-Tests' 2
 JavaInvalidRefError JavaInvalidRefError stx:libjava 'Languages-Java-Support' 1
 JavaMethod JavaMethod stx:libjava 'Languages-Java-Classes' 0
 JavaMethodAnnotationContainer JavaMethodAnnotationContainer stx:libjava 'Languages-Java-Annotations' 1
 JavaMethodDeclarationNode JavaMethodDeclarationNode stx:libjava 'Languages-Java-AST' 0
 JavaMethodDescriptor JavaMethodDescriptor stx:libjava 'Languages-Java-Support' 0
+JavaNativeMethodImpl_OpenJDK6 JavaNativeMethodImpl_OpenJDK6 stx:libjava 'Languages-Java-Support-OpenJDK6' 0
 JavaStringRef2 JavaStringRef2 stx:libjava 'Languages-Java-Reader-Support-new' 0
 JavaUnhandledExceptionError JavaUnhandledExceptionError stx:libjava 'Languages-Java-Support' 1
 JavaUnresolvedClassConstant JavaUnresolvedClassConstant stx:libjava 'Languages-Java-Reader-Support' 0
@@ -112,43 +130,25 @@
 ProxyMethodConditionNode ProxyMethodConditionNode stx:libjava 'System-Compiler-Interop' 0
 ProxyMethodGuardNode ProxyMethodGuardNode stx:libjava 'System-Compiler-Interop' 0
 ProxyMethodInvocationNode ProxyMethodInvocationNode stx:libjava 'System-Compiler-Interop' 0
+ProxyMethodJavaFieldAccessor ProxyMethodJavaFieldAccessor stx:libjava 'Languages-Java-Interop' 0
 JavaByteCodePreresolver JavaByteCodePreresolver stx:libjava 'Languages-Java-Bytecode' 0
 JavaClass JavaClass stx:libjava 'Languages-Java-Classes' 0
+JavaClassPathBundle JavaClassPathBundle stx:libjava 'Languages-Java-Support-Libraries' 0
 JavaFieldRef2 JavaFieldRef2 stx:libjava 'Languages-Java-Reader-Support-new' 0
 JavaMethodRef2 JavaMethodRef2 stx:libjava 'Languages-Java-Reader-Support-new' 0
 JavaMethodWithException JavaMethodWithException stx:libjava 'Languages-Java-Classes' 0
+JavaNativeMethodImpl_OpenJDK7 JavaNativeMethodImpl_OpenJDK7 stx:libjava 'Languages-Java-Support-OpenJDK7' 0
+JavaNativeMethodImpl_SunJDK6 JavaNativeMethodImpl_SunJDK6 stx:libjava 'Languages-Java-Support-OpenJDK6' 0
 ProxyMethodAndNode ProxyMethodAndNode stx:libjava 'System-Compiler-Interop' 0
 ProxyMethodBlockInvocationNode ProxyMethodBlockInvocationNode stx:libjava 'System-Compiler-Interop' 0
+ProxyMethodJavaFieldGetter ProxyMethodJavaFieldGetter stx:libjava 'Languages-Java-Interop' 0
+ProxyMethodJavaFieldSetter ProxyMethodJavaFieldSetter stx:libjava 'Languages-Java-Interop' 0
 ProxyMethodMethodInvocationNode ProxyMethodMethodInvocationNode stx:libjava 'System-Compiler-Interop' 0
 ProxyMethodTypeCheckNode ProxyMethodTypeCheckNode stx:libjava 'System-Compiler-Interop' 0
 GroovyClass GroovyClass stx:libjava 'Languages-Groovy-Classes' 0
 JavaInterfaceMethodRef2 JavaInterfaceMethodRef2 stx:libjava 'Languages-Java-Reader-Support-new' 0
 JavaMethodWithHandler JavaMethodWithHandler stx:libjava 'Languages-Java-Classes' 0
+JavaNativeMethodImpl_SunJDK7 JavaNativeMethodImpl_SunJDK7 stx:libjava 'Languages-Java-Support-OpenJDK7' 0
 ProxyMethodJavaMethodInvocationNode ProxyMethodJavaMethodInvocationNode stx:libjava 'Languages-Java-Interop' 0
 ProxyMethodJavaTypeCheckNode ProxyMethodJavaTypeCheckNode stx:libjava 'Languages-Java-Interop' 0
 JavaNativeMethod JavaNativeMethod stx:libjava 'Languages-Java-Classes' 0
-ProxyMethodJavaFieldAccessor ProxyMethodJavaFieldAccessor stx:libjava 'Languages-Java-Interop' 0
-ProxyMethodJavaFieldGetter ProxyMethodJavaFieldGetter stx:libjava 'Languages-Java-Interop' 0
-ProxyMethodJavaFieldSetter ProxyMethodJavaFieldSetter stx:libjava 'Languages-Java-Interop' 0
-JavaExceptionTests JavaExceptionTests stx:libjava 'Languages-Java-Tests' 1
-JavaCompiler_Eclipse JavaCompiler_Eclipse stx:libjava 'Languages-Java-Tools-Eclipse' 0
-JavaMetaclass JavaMetaclass stx:libjava 'Languages-Java-Classes' 0
-GroovyMetaclass GroovyMetaclass stx:libjava 'Languages-Groovy-Classes' 0
-JavaClassReaderTests JavaClassReaderTests stx:libjava 'Languages-Java-Tests-RuntimeConstantPool' 1
-JavaNioSupport JavaNioSupport stx:libjava 'Languages-Java-Support-Native' 0
-JavaNativeMemoryTests JavaNativeMemoryTests stx:libjava 'Languages-Java-Tests' 1
-JavaFinalizationRegistry JavaFinalizationRegistry stx:libjava 'Languages-Java-Support' 0
-JavaMirror JavaMirror stx:libjava 'Languages-Java-Classes' 0
-JavaClassQuery JavaClassQuery stx:libjava 'Languages-Java-Classes' 1
-JUnitTestCaseProxy JUnitTestCaseProxy stx:libjava 'Languages-Java-Tests-Proxies' 3
-JavaLookupResolutionAlgorithmTests JavaLookupResolutionAlgorithmTests stx:libjava 'Languages-Java-Tests-Interop' 1
-JavaLookupTests JavaLookupTests stx:libjava 'Languages-Java-Tests-Interop' 1
-JavaLookupTestsResource JavaLookupTestsResource stx:libjava 'Languages-Java-Tests-Interop' 3
-JavaCodeLibraryOrBundle JavaCodeLibraryOrBundle stx:libjava 'Languages-Java-Support-Libraries' 0
-JavaCodeBundle JavaCodeBundle stx:libjava 'Languages-Java-Support-Libraries' 0
-JavaClassPathBundle JavaClassPathBundle stx:libjava 'Languages-Java-Support-Libraries' 0
-JavaCodeLibrary JavaCodeLibrary stx:libjava 'Languages-Java-Support-Libraries' 0
-JavaNativeMethodImpl_OpenJDK6 JavaNativeMethodImpl_OpenJDK6 stx:libjava 'Languages-Java-Support-OpenJDK6' 0
-JavaNativeMethodImpl_SunJDK6 JavaNativeMethodImpl_SunJDK6 stx:libjava 'Languages-Java-Support-OpenJDK6' 0
-JavaNativeMethodImpl_OpenJDK7 JavaNativeMethodImpl_OpenJDK7 stx:libjava 'Languages-Java-Support-OpenJDK7' 0
-JavaNativeMethodImpl_SunJDK7 JavaNativeMethodImpl_SunJDK7 stx:libjava 'Languages-Java-Support-OpenJDK7' 0
--- a/bc.mak	Fri Mar 29 23:37:04 2013 +0000
+++ b/bc.mak	Sun Mar 31 19:25:00 2013 +0100
@@ -30,11 +30,11 @@
 !INCLUDE Make.spec
 
 LIBNAME=libstx_libjava
-RESFILES=libjava.res
+RESFILES=libjava.$(RES)
 
 
 
-LOCALINCLUDES=-I$(ZLIB_DIR) -Isupport\fdlibm -I$(INCLUDE_TOP)\stx\libbasic -I$(INCLUDE_TOP)\stx\libbasic3 -I$(INCLUDE_TOP)\stx\libview2 -I$(INCLUDE_TOP)\stx\libwidg -I$(INCLUDE_TOP)\stx\libhtml -I$(INCLUDE_TOP)\stx\libtool -I$(INCLUDE_TOP)\stx\libbasic2 -I$(INCLUDE_TOP)\stx\goodies\sunit -I$(INCLUDE_TOP)\stx\libcomp -I$(INCLUDE_TOP)\stx\libview -I$(INCLUDE_TOP)\stx\libwidg2
+LOCALINCLUDES=-I$(ZLIB_DIR) -Isupport\fdlibm -I$(INCLUDE_TOP)\stx\libbasic -I$(INCLUDE_TOP)\stx\libbasic3 -I$(INCLUDE_TOP)\stx\libview2 -I$(INCLUDE_TOP)\stx\goodies\petitparser -I$(INCLUDE_TOP)\stx\libtool -I$(INCLUDE_TOP)\stx\libbasic2 -I$(INCLUDE_TOP)\stx\goodies\sunit -I$(INCLUDE_TOP)\stx\libcomp -I$(INCLUDE_TOP)\stx\libview -I$(INCLUDE_TOP)\stx\libwidg2
 LOCALDEFINES=
 
 STCLOCALOPT=-package=$(PACKAGE) -I. $(LOCALINCLUDES) -headerDir=. $(STCLOCALOPTIMIZATIONS) $(STCWARNINGS) $(LOCALDEFINES)  -varPrefix=$(LIBNAME)
@@ -48,26 +48,24 @@
 
 !INCLUDE $(TOP)\rules\stdRules_bc
 
-# build all prerequisite packages for this package
+# build all mandatory prerequisite packages (containing superclasses) for this package
 prereq:
-	pushd ..\libwidg2 & $(MAKE_BAT) "CFLAGS_LOCAL=$(GLOBALDEFINES) "
-	pushd ..\libhtml & $(MAKE_BAT) "CFLAGS_LOCAL=$(GLOBALDEFINES) "
-	pushd ..\libdb\libsqlite & $(MAKE_BAT) "CFLAGS_LOCAL=$(GLOBALDEFINES) "
 	pushd ..\libbasic & $(MAKE_BAT) "CFLAGS_LOCAL=$(GLOBALDEFINES) "
-	pushd ..\libwidg & $(MAKE_BAT) "CFLAGS_LOCAL=$(GLOBALDEFINES) "
-	pushd ..\libui & $(MAKE_BAT) "CFLAGS_LOCAL=$(GLOBALDEFINES) "
+	pushd ..\libbasic2 & $(MAKE_BAT) "CFLAGS_LOCAL=$(GLOBALDEFINES) "
+	pushd ..\libcomp & $(MAKE_BAT) "CFLAGS_LOCAL=$(GLOBALDEFINES) "
+	pushd ..\libbasic3 & $(MAKE_BAT) "CFLAGS_LOCAL=$(GLOBALDEFINES) "
 	pushd ..\libview & $(MAKE_BAT) "CFLAGS_LOCAL=$(GLOBALDEFINES) "
-	pushd ..\libcomp & $(MAKE_BAT) "CFLAGS_LOCAL=$(GLOBALDEFINES) "
-	pushd ..\libbasic2 & $(MAKE_BAT) "CFLAGS_LOCAL=$(GLOBALDEFINES) "
+	pushd ..\libui & $(MAKE_BAT) "CFLAGS_LOCAL=$(GLOBALDEFINES) "
 	pushd ..\libview2 & $(MAKE_BAT) "CFLAGS_LOCAL=$(GLOBALDEFINES) "
 	pushd ..\goodies\sunit & $(MAKE_BAT) "CFLAGS_LOCAL=$(GLOBALDEFINES) "
-	pushd ..\libdb\libodbc & $(MAKE_BAT) "CFLAGS_LOCAL=$(GLOBALDEFINES) "
-	pushd ..\libboss & $(MAKE_BAT) "CFLAGS_LOCAL=$(GLOBALDEFINES) "
-	pushd ..\libbasic3 & $(MAKE_BAT) "CFLAGS_LOCAL=$(GLOBALDEFINES) "
+	pushd ..\libwidg & $(MAKE_BAT) "CFLAGS_LOCAL=$(GLOBALDEFINES) "
+	pushd ..\libhtml & $(MAKE_BAT) "CFLAGS_LOCAL=$(GLOBALDEFINES) "
+	pushd ..\libwidg2 & $(MAKE_BAT) "CFLAGS_LOCAL=$(GLOBALDEFINES) "
 	pushd ..\libtool & $(MAKE_BAT) "CFLAGS_LOCAL=$(GLOBALDEFINES) "
 
 
 
+
 java: ant
 
 ant:
--- a/bmake.bat	Fri Mar 29 23:37:04 2013 +0000
+++ b/bmake.bat	Sun Mar 31 19:25:00 2013 +0100
@@ -9,4 +9,18 @@
 @IF "%HGROOT%" NEQ "" SET DEFINES=%DEFINES% "-DHGROOT=%HGROOT%"
 make.exe -N -f bc.mak  %DEFINES% %*
 
+@echo "***********************************"
+@echo "Buildung stx/libjava/tools
+@echo "***********************************"
+@cd tools
+@call bmake %1 %2
+@cd ..
 
+@echo "***********************************"
+@echo "Buildung stx/libjava/experiments
+@echo "***********************************"
+@cd experiments
+@call bmake %1 %2
+@cd ..
+
+
--- a/experiments/JavaCompiler.st	Fri Mar 29 23:37:04 2013 +0000
+++ b/experiments/JavaCompiler.st	Sun Mar 31 19:25:00 2013 +0100
@@ -377,11 +377,15 @@
     ].
 
     classfiles := javac getClassFiles.
-    ^classfiles collect:[:each|JavaClassReader readStream: each getBytes readStream].
+    ^classfiles collect:[:each|
+        (JavaClassReader readStream: each getBytes readStream)
+            setSource: source;
+            setClassfileBytes: each getBytes;
+            yourself].
 
     "Created: / 15-12-2012 / 23:04:46 / Jan Vrany <jan.vrany@fit.cvut.cz>"
     "Modified: / 16-12-2012 / 15:36:16 / Marcel Hlopko <marcel.hlopko@fit.cvut.cz>"
-    "Modified: / 29-03-2013 / 23:23:17 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    "Modified: / 30-03-2013 / 00:12:49 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 ! !
 
 !JavaCompiler::Javac class methodsFor:'documentation'!
--- a/experiments/experiments.rc	Fri Mar 29 23:37:04 2013 +0000
+++ b/experiments/experiments.rc	Sun Mar 31 19:25:00 2013 +0100
@@ -3,7 +3,7 @@
 // automagically generated from the projectDefinition: stx_libjava_experiments.
 //
 VS_VERSION_INFO VERSIONINFO
-  FILEVERSION     6,2,4469,4469
+  FILEVERSION     6,2,32767,32767
   PRODUCTVERSION  6,2,3,0
 #if (__BORLANDC__)
   FILEFLAGSMASK   VS_FF_DEBUG | VS_FF_PRERELEASE
@@ -20,12 +20,12 @@
     BEGIN
       VALUE "CompanyName", "eXept Software AG\0"
       VALUE "FileDescription", "Smalltalk/X Class library (LIB)\0"
-      VALUE "FileVersion", "6.2.4469.4469\0"
+      VALUE "FileVersion", "6.2.32767.32767\0"
       VALUE "InternalName", "stx:libjava/experiments\0"
       VALUE "LegalCopyright", "Copyright Claus Gittinger 1988-2013\nCopyright eXept Software AG 1998-2013\0"
       VALUE "ProductName", "Smalltalk/X\0"
       VALUE "ProductVersion", "6.2.3.0\0"
-      VALUE "ProductDate", "Fri, 29 Mar 2013 23:34:28 GMT\0"
+      VALUE "ProductDate", "Sun, 31 Mar 2013 18:15:54 GMT\0"
     END
 
   END
--- a/extensions.st	Fri Mar 29 23:37:04 2013 +0000
+++ b/extensions.st	Sun Mar 31 19:25:00 2013 +0100
@@ -1909,4 +1909,4 @@
 extensionsVersion_HG
 
     ^ '$Changeset: <not expanded> $'
-! !
\ No newline at end of file
+! !
--- a/lccmake.bat	Fri Mar 29 23:37:04 2013 +0000
+++ b/lccmake.bat	Sun Mar 31 19:25:00 2013 +0100
@@ -5,4 +5,18 @@
 @REM -------
 make.exe -N -f bc.mak -DUSELCC=1 %*
 
+@echo "***********************************"
+@echo "Buildung stx/libjava/tools
+@echo "***********************************"
+@cd tools
+@call lccmake %1 %2
+@cd ..
 
+@echo "***********************************"
+@echo "Buildung stx/libjava/experiments
+@echo "***********************************"
+@cd experiments
+@call lccmake %1 %2
+@cd ..
+
+
--- a/libjava.rc	Fri Mar 29 23:37:04 2013 +0000
+++ b/libjava.rc	Sun Mar 31 19:25:00 2013 +0100
@@ -25,7 +25,7 @@
       VALUE "LegalCopyright", "Copyright Claus Gittinger 1988-2011\nCopyright eXept Software AG 1998-2011\nCopyright Jan Vrany, Jan Kurs and Marcel Hlopko\n          SWING Research Group, Czech Technical University In Prague\0"
       VALUE "ProductName", "Smalltalk/X\0"
       VALUE "ProductVersion", "6.2.3.0\0"
-      VALUE "ProductDate", "Sat, 09 Mar 2013 12:15:42 GMT\0"
+      VALUE "ProductDate", "Sun, 31 Mar 2013 18:18:37 GMT\0"
     END
 
   END
--- a/mingwmake.bat	Fri Mar 29 23:37:04 2013 +0000
+++ b/mingwmake.bat	Sun Mar 31 19:25:00 2013 +0100
@@ -8,7 +8,23 @@
 @FOR /F "tokens=*" %%i in ('hg root') do SET HGROOT=%%i
 @IF "%HGROOT%" NEQ "" SET DEFINES=%DEFINES% "-DHGROOT=%HGROOT%"
 
-@call ..\rules\find_mingw.bat
-make.exe -N -f bc.mak %USEMINGW_ARG% %*
+@pushd ..\rules
+@call find_mingw.bat
+@popd
+make.exe -N -f bc.mak %DEFINES% %USEMINGW_ARG% %*
+
+@echo "***********************************"
+@echo "Buildung stx/libjava/tools
+@echo "***********************************"
+@cd tools
+@call mingwmake %1 %2
+@cd ..
+
+@echo "***********************************"
+@echo "Buildung stx/libjava/experiments
+@echo "***********************************"
+@cd experiments
+@call mingwmake %1 %2
+@cd ..
 
 
--- a/stx_libjava.st	Fri Mar 29 23:37:04 2013 +0000
+++ b/stx_libjava.st	Sun Mar 31 19:25:00 2013 +0100
@@ -151,6 +151,30 @@
     )
 !
 
+mandatoryPreRequisites
+    "list all required mandatory packages.
+     Packages are mandatory, if they contain superclasses of the package's classes
+     or classes which are extended by this package.
+     This list can be maintained manually or (better) generated and
+     updated by scanning the superclass hierarchies
+     (the browser has a menu function for that)
+     However, often too much is found, and you may want to explicitely
+     exclude individual packages in the #excludedFromPreRequisites method."
+
+    ^ #(
+        #'stx:goodies/petitparser'    "PPDelegateParser - superclass of JavaParserII "
+        #'stx:goodies/sunit'    "TestResource - superclass of JavaAntProjectResource "
+        #'stx:libbasic'    "Class - superclass of JavaClass "
+        #'stx:libbasic2'    "BitArray - extended "
+        #'stx:libbasic3'    "WrappedMethod - extended "
+        #'stx:libcomp'    "ParseNode - superclass of JavaTypeNode "
+        #'stx:libtool'    "InspectorView - superclass of JavaMapInspectorView "
+        #'stx:libview'    "PopUpView - superclass of JavaPopUpView "
+        #'stx:libview2'    "Model - superclass of JavaCodeBundleEditor "
+        #'stx:libwidg2'    "HierarchicalItem - superclass of JavaCodeBundleEditor::Item "
+    )
+!
+
 preRequisites
     "list all required packages.
      This list can be maintained manually or (better) generated and
@@ -173,6 +197,34 @@
         #'stx:libwidg'    "Label - referenced by JavaNativeMethodImpl_OpenJDK6 class>>_WLabelPeer_create: "
         #'stx:libwidg2'    "MenuPanel - referenced by JavaNativeMethodImpl_OpenJDK6 class>>_WMenuPeer_createMenu: "
     )
+!
+
+referencedPreRequisites
+    "list all packages containing classes referenced by the packages's members.
+     This list can be maintained manually or (better) generated and
+     updated by looking for global variable accesses
+     (the browser has a menu function for that)
+     However, often too much is found, and you may want to explicitely
+     exclude individual packages in the #excludedFromPreRequisites method."
+
+    ^ #(
+        #'stx:libhtml'    "URL - referenced by JavaEmbeddedFrameView>>setupAppletFrameIn:initializeJava: "
+        #'stx:libjava/experiments'    "NoReflectionObject - referenced by JavaObjectDictionary>>reflectionOf: "
+        #'stx:libjava/tools'    "JavaSyntaxHighlighter::Scanner - referenced by JavaSyntaxHighlighter>>format:kind:in: "
+        #'stx:libwidg'    "ScrollableView - referenced by JavaNativeMethodImpl_OpenJDK6 class>>_MComponentPeer_pSetForeground: "
+    )
+!
+
+subProjects
+    "list packages which are known as subprojects.
+     The generated makefile will enter those and make there as well.
+     However: they are not forced to be loaded when a package is loaded;
+     for those, redefine requiredPrerequisites"
+
+    ^ #(
+        #'stx:libjava/tools'
+        #'stx:libjava/experiments'
+    )
 ! !
 
 !stx_libjava class methodsFor:'description - compilation'!
@@ -284,13 +336,11 @@
 
     ^ #(
         "<className> or (<className> attributes...) in load order"
-        JavaVMData
-        (JavaRefsAndConstantPoolTestCase autoload)
         GroovyCompiler
         GroovyEvaluator
         GroovyLanguage
         GroovySourceFileWriter
-        Java
+        (JUnitTestCaseProxy autoload)
         JavaAnnotation
         JavaAnnotationContainer
         JavaAnnotationDefault
@@ -299,14 +349,17 @@
         (JavaAntProjectResource autoload)
         JavaArray
         JavaByte
-        (JavaByteCodeProcessorTests autoload)
         (JavaByteCodeDisassemblerTests autoload)
         JavaByteCodeProcessor
+        (JavaByteCodeProcessorTests autoload)
         JavaClassAccessor
         (JavaClassLoadingTests autoload)
+        JavaClassQuery
+        (JavaClassReaderTests autoload)
         (JavaClassRefTests autoload)
-        JavaClassRegistry
         JavaClassReloader
+        JavaCodeLibraryOrBundle
+        #'JavaCompiler_Eclipse'
         JavaConstantPool
         JavaConstants
         JavaContext
@@ -314,10 +367,11 @@
         JavaDescriptor
         JavaError
         JavaExceptionTableEntry
+        (JavaExceptionTests autoload)
         JavaField
         (JavaFieldRefTests autoload)
+        JavaFinalizationRegistry
         (JavaFreshlyInitializedResource autoload)
-        (JavaInitializedResource autoload)
         (JavaInterfaceMethodRefTests autoload)
         (JavaJUnitTests autoload)
         JavaLanguage
@@ -326,12 +380,19 @@
         JavaLocalVariableTable
         JavaLocalVariableTableEntry
         JavaLookup
+        (JavaLookupResolutionAlgorithmTests autoload)
+        (JavaLookupTests autoload)
+        (JavaLookupTestsResource autoload)
         JavaMathSupport
+        JavaMetaclass
         (JavaMethodRefTests autoload)
+        JavaMirror
         JavaMonitor
         (JavaMonitorsTests autoload)
         JavaNameAndType2
         JavaNativeMemory
+        (JavaNativeMemoryTests autoload)
+        JavaNioSupport
         JavaObject
         JavaObjectDictionary
         JavaPackage
@@ -339,6 +400,7 @@
         JavaProcess
         JavaRef2
         (JavaRefMock autoload)
+        (JavaRefsAndConstantPoolTestCase autoload)
         JavaRelease
         JavaResolver
         (JavaRuntimeConstantPoolTests autoload)
@@ -354,6 +416,7 @@
         (JavaUTF8Tests autoload)
         JavaUnresolvedConstant
         JavaUtilities
+        JavaVMData
         JavaView
         JavaZipSupport
         PPJavaNode
@@ -364,6 +427,8 @@
         SmalltalkAppletStub
         (TestletTestCaseProxy autoload)
         #'stx_libjava'
+        GroovyMetaclass
+        Java
         JavaAnnotationArrayValue
         JavaAnnotationClassValue
         JavaAnnotationEnumValue
@@ -377,15 +442,20 @@
         JavaClassContentRef2
         JavaClassReader
         JavaClassRef2
+        JavaClassRegistry
+        JavaCodeBundle
+        JavaCodeLibrary
         JavaEmbeddedFrameView
         JavaFieldAnnotationContainer
         JavaFieldDescriptor
         JavaFieldDescriptorWithUnionType
+        (JavaInitializedResource autoload)
         JavaInvalidRefError
         JavaMethod
         JavaMethodAnnotationContainer
         JavaMethodDeclarationNode
         JavaMethodDescriptor
+        #'JavaNativeMethodImpl_OpenJDK6'
         JavaStringRef2
         JavaUnhandledExceptionError
         JavaUnresolvedClassConstant
@@ -395,46 +465,28 @@
         ProxyMethodConditionNode
         ProxyMethodGuardNode
         ProxyMethodInvocationNode
+        ProxyMethodJavaFieldAccessor
         JavaByteCodePreresolver
         JavaClass
+        JavaClassPathBundle
         JavaFieldRef2
         JavaMethodRef2
         JavaMethodWithException
+        #'JavaNativeMethodImpl_OpenJDK7'
+        #'JavaNativeMethodImpl_SunJDK6'
         ProxyMethodAndNode
         ProxyMethodBlockInvocationNode
+        ProxyMethodJavaFieldGetter
+        ProxyMethodJavaFieldSetter
         ProxyMethodMethodInvocationNode
         ProxyMethodTypeCheckNode
         GroovyClass
         JavaInterfaceMethodRef2
         JavaMethodWithHandler
+        #'JavaNativeMethodImpl_SunJDK7'
         ProxyMethodJavaMethodInvocationNode
         ProxyMethodJavaTypeCheckNode
         JavaNativeMethod
-        ProxyMethodJavaFieldAccessor
-        ProxyMethodJavaFieldGetter
-        ProxyMethodJavaFieldSetter
-        (JavaExceptionTests autoload)
-        #'JavaCompiler_Eclipse'
-        JavaMetaclass
-        GroovyMetaclass
-        (JavaClassReaderTests autoload)
-        JavaNioSupport
-        (JavaNativeMemoryTests autoload)
-        JavaFinalizationRegistry
-        JavaMirror
-        JavaClassQuery
-        (JUnitTestCaseProxy autoload)
-        (JavaLookupResolutionAlgorithmTests autoload)
-        (JavaLookupTests autoload)
-        (JavaLookupTestsResource autoload)
-        JavaCodeLibraryOrBundle
-        JavaCodeBundle
-        JavaClassPathBundle
-        JavaCodeLibrary
-        #'JavaNativeMethodImpl_OpenJDK6'
-        #'JavaNativeMethodImpl_SunJDK6'
-        #'JavaNativeMethodImpl_OpenJDK7'
-        #'JavaNativeMethodImpl_SunJDK7'
     )
 !
 
--- a/vcmake.bat	Fri Mar 29 23:37:04 2013 +0000
+++ b/vcmake.bat	Sun Mar 31 19:25:00 2013 +0100
@@ -5,7 +5,9 @@
 @REM -------
 
 @if not defined VSINSTALLDIR (
-    call ..\rules\vcsetup.bat
+    pushd ..\rules
+    call vcsetup.bat
+    popd
 )
 @SET DEFINES=
 @REM Kludge got Mercurial, cannot be implemented in Borland make
@@ -15,4 +17,18 @@
 
 
 
+@echo "***********************************"
+@echo "Buildung stx/libjava/tools
+@echo "***********************************"
+@cd tools
+@call vcmake %1 %2
+@cd ..
 
+@echo "***********************************"
+@echo "Buildung stx/libjava/experiments
+@echo "***********************************"
+@cd experiments
+@call vcmake %1 %2
+@cd ..
+
+