Initial implementation of code libraries & bundles finished. refactoring-javalibrary
authorJan Vrany <jan.vrany@fit.cvut.cz>
Tue, 15 Jan 2013 18:12:48 +0000
branchrefactoring-javalibrary
changeset 1951 4759acf61df0
parent 1950 95aadad3079d
child 1953 1e42ad3fc322
Initial implementation of code libraries & bundles finished. Java boots, Groovy works as well. Missing implementation of Java>>addToClassPath: & Java>>addToSourcePath: and user interface to configure user-defined bundles.
Java.st
JavaCodeBundle.st
JavaCodeLibrary.st
JavaCodeLibraryOrBundle.st
JavaRelease.st
JavaRootBundle.st
Make.proto
Make.spec
abbrev.stc
bc.mak
experiments/abbrev.stc
experiments/experiments.rc
experiments/stx_libjava_experiments.st
extensions.st
libInit.cc
libjava.rc
stx_libjava.st
tools/Make.proto
tools/Make.spec
tools/bc.mak
tools/libInit.cc
tools/stx_libjava_tools.st
tools/tools.rc
--- a/Java.st	Sat Jan 12 16:47:13 2013 +0000
+++ b/Java.st	Tue Jan 15 18:12:48 2013 +0000
@@ -22,13 +22,12 @@
 
 Object subclass:#Java
 	instanceVariableNames:''
-	classVariableNames:'Classes UnresolvedClassRefs Release ReleaseBundle PackagesBundle
-		EnvironmentBundle UserBundle ClassPath ClassPathExt
-		ExtensionsPath ExtensionsPathPackages CacheDirectory JavaHome
-		InternedStrings Java_lang_String Java_lang_Class PrettyPrintStyle
-		LastArgumentString Threads ExcludedClassPath FailedToLoadClasses
-		SourceCache SourceArchiveCache JavaClassLoaderQuerySignal
-		ClassLoaderQuerySignal ThreadsAccess'
+	classVariableNames:'Classes UnresolvedClassRefs Release RootBundle ClassPath
+		ClassPathExt ExtensionsPath ExtensionsPathPackages CacheDirectory
+		JavaHome InternedStrings Java_lang_String Java_lang_Class
+		PrettyPrintStyle LastArgumentString Threads ExcludedClassPath
+		FailedToLoadClasses SourceCache SourceArchiveCache
+		JavaClassLoaderQuerySignal ClassLoaderQuerySignal ThreadsAccess'
 	poolDictionaries:''
 	category:'Languages-Java-Support'
 !
@@ -165,7 +164,6 @@
 release: aJavaRelease
 
     Release := aJavaRelease.
-    ReleaseBundle := aJavaRelease codeBundle
 
     "
         Java release: JavaRelease openJDK6. 
@@ -174,7 +172,7 @@
     "
 
     "Created: / 22-11-2010 / 12:38:04 / Jan Vrany <jan.vrany@fit.cvut.cz>"
-    "Modified: / 12-01-2013 / 16:13:46 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    "Modified: / 15-01-2013 / 17:59:27 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 !
 
 systemPropertyAt:key put:something
@@ -266,9 +264,7 @@
     SourceDirectories := UserPreferences current javaSourcePath decodeAsLiteralArray asOrderedCollection.
     Threads := IdentityDictionary new.
 
-    EnvironmentBundle := JavaCodeBundle new name: 'Environment'.
-    PackagesBundle := JavaCodeBundle new name: 'Package libraries'.
-    UserBundle := JavaCodeBundle new name: 'User libraries'.
+    RootBundle := JavaRootBundle new.
 
     ThreadsAccess := RecursionLock forMutualExclusion.
     self initializeRelease. "lazy initialization of Release"
@@ -285,7 +281,7 @@
     "Created: / 03-10-2010 / 15:54:02 / Jan Kurs <kurs.jan@post.cz>"
     "Modified: / 15-10-2010 / 17:37:20 / Jan Kurs <kurs.jan@post.cz>"
     "Modified: / 09-12-2011 / 13:16:15 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
-    "Modified: / 12-01-2013 / 16:21:54 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    "Modified: / 15-01-2013 / 17:52:31 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 !
 
 initializePrettyPrintStyle
@@ -362,11 +358,11 @@
     | nm |    
     "Ask preferences if preffered release is set"
     nm := UserPreferences current javaReleaseSelector.
-    nm notNil ifTrue:[
-        Release := JavaRelease perform: nm asSymbol ifNotUnderstood:[JavaRelease any]
-    ] ifFalse:[
-        Release := JavaRelease any
-    ]
+    Release := nm notNil 
+                ifTrue:[JavaRelease perform: nm asSymbol ifNotUnderstood:[JavaRelease any]]
+                ifFalse:[Release := JavaRelease any].
+    
+
 
     "
         Release := nil. 
@@ -375,6 +371,7 @@
     "
 
     "Created: / 26-07-2012 / 23:58:00 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    "Modified: / 15-01-2013 / 17:59:24 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 !
 
 startupJavaSystem
@@ -749,12 +746,7 @@
 !
 
 classPath
-    ^OrderedCollection streamContents:[:s|
-        ReleaseBundle       classPathOn: s.
-        EnvironmentBundle   classPathOn: s.
-        PackagesBundle      classPathOn: s.
-        UserBundle          classPathOn: s.
-    ].
+    ^RootBundle classPath
 "/
 "/    ^ "for testing only"
 "/    "/Release classPath,
@@ -772,11 +764,11 @@
     "
 
     "Created: / 07-02-1997 / 19:23:45 / cg"
-    "Modified (format): / 12-01-2013 / 16:20:00 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    "Modified: / 15-01-2013 / 17:54:11 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 !
 
 classPath:aCollectionOfPaths
-    self error: 'No longer supported'
+    "/self error: 'No longer supported'
 
     "Created: / 07-02-1997 / 19:23:45 / cg"
     "Modified: / 17-09-1998 / 20:44:09 / cg"
@@ -865,12 +857,10 @@
 !
 
 sourcePath
-    ^ 
-    SourceDirectories ? #() ,
-    self sourcePathFromPackages
+    RootBundle sourcePath
 
     "Created: / 16-01-1998 / 13:26:55 / cg"
-    "Modified: / 14-12-2011 / 20:00:25 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    "Modified: / 15-01-2013 / 17:54:44 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 ! !
 
 !Java class methodsFor:'paths-adding & removing'!
@@ -1542,12 +1532,7 @@
 !
 
 sourceDirectories
-    ^OrderedCollection streamContents:[:s|
-        ReleaseBundle       sourcePathOn: s.
-        EnvironmentBundle   sourcePathOn: s.
-        PackagesBundle      sourcePathOn: s.
-        UserBundle          sourcePathOn: s.
-    ].
+    RootBundle sourcePath
 "/
 "/    ^ "for testing only"
 "/    "/Release classPath,
@@ -1564,7 +1549,7 @@
         Java classPath
     "
 
-    "Modified: / 12-01-2013 / 16:25:46 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    "Modified: / 15-01-2013 / 17:54:59 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 ! !
 
 !Java class methodsFor:'starting apps'!
--- a/JavaCodeBundle.st	Sat Jan 12 16:47:13 2013 +0000
+++ b/JavaCodeBundle.st	Tue Jan 15 18:12:48 2013 +0000
@@ -51,6 +51,22 @@
      as of 1.9.2010
 
 "
+!
+
+documentation
+"
+    A container for several JavaCodeLibraries bundled together.
+
+    [author:]
+        Jan Vrany <jan.vrany@fit.cvut.cz>
+
+    [instance variables:]
+
+    [class variables:]
+
+    [see also:]
+
+"
 ! !
 
 !JavaCodeBundle class methodsFor:'instance creation'!
@@ -59,6 +75,68 @@
     "return an initialized instance"
 
     ^ self basicNew initialize.
+!
+
+standardPackageBundleFor: packageId
+    "Return bundle for packageId. Assumes that that
+     package has standard layout, i.e.,
+
+     <package-dir>/java
+        bin ..................... compiler .class files
+        src ..................... java sources
+        libs .................... required .jar files
+        libs-src ................ (optional) sources code for .jars
+    "
+        
+    | bundle lib pkg javadir p libs libssrc |
+
+    pkg := ProjectDefinition definitionClassForPackage: packageId.
+    pkg isNil ifTrue:[ ^ nil ].
+    javadir := pkg packageDirectory / 'java'.
+    (javadir isDirectory not or:[javadir isReadable not]) ifTrue:[ ^ nil ].
+    bundle := JavaCodeBundle new name: pkg package.
+    (p := javadir / 'bin') isDirectory ifTrue:[
+        lib := JavaCodeLibrary new name: 'java'.
+        lib classes: p pathName.
+        (p := javadir /'src') isDirectory ifTrue:[
+            lib sources: p pathName
+        ].
+        bundle add: lib.
+    ].
+    libs := javadir / 'libs'.
+    libssrc := javadir / 'libs-src'.
+    libs isDirectory ifTrue:[
+        libs directoryContentsAsFilenamesDo:[:each|
+            each suffix = 'jar' ifTrue:[
+                lib := JavaCodeLibrary new name: each baseName.
+                lib classes: each pathName.
+                (p :=  libssrc / (each withoutSuffix baseName , '-sources.jar') ) exists ifTrue:[
+                    lib sources: p pathName.
+                ] ifFalse:[
+                    (p :=  libssrc / (each withoutSuffix baseName , '-sources.zip') ) exists ifTrue:[
+                        lib sources: p pathName.            
+                    ].
+                ].
+                bundle add: lib.
+            ].
+        ].
+    ].
+    ^bundle
+
+    "
+        JavaCodeBundle standardPackageBundleFor: #'stx:libjava'
+        JavaCodeBundle standardPackageBundleFor: #'stx:libjava/libs'
+    "
+
+    "Created: / 15-01-2013 / 17:05:31 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+
+!JavaCodeBundle methodsFor:'accessing'!
+
+libraries
+    ^ libraries
+
+    "Modified: / 15-01-2013 / 17:32:41 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 ! !
 
 !JavaCodeBundle methodsFor:'adding & removing'!
@@ -82,17 +160,18 @@
 classPathOn:aStream
     "superclass JavaCodeLibraryOrBundle says that I am responsible to implement this method"
 
-    ^ libraries do:[:each|each classPathOn: aStream].
+    ^ self libraries do:[:each|each classPathOn: aStream].
 
-    "Modified: / 12-01-2013 / 16:19:03 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    "Modified: / 15-01-2013 / 17:32:22 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 !
 
 sourcePathOn:aStream
     "superclass JavaCodeLibraryOrBundle says that I am responsible to implement this method"
 
-    ^ libraries do:[:each|each sourcePathOn: aStream].
+    ^ self libraries do:[:each|each sourcePathOn: aStream].
 
     "Created: / 12-01-2013 / 16:24:36 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    "Modified: / 15-01-2013 / 17:32:47 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 ! !
 
 !JavaCodeBundle methodsFor:'initialization'!
--- a/JavaCodeLibrary.st	Sat Jan 12 16:47:13 2013 +0000
+++ b/JavaCodeLibrary.st	Tue Jan 15 18:12:48 2013 +0000
@@ -51,6 +51,23 @@
      as of 1.9.2010
 
 "
+!
+
+documentation
+"
+    A representation of a Java library. It knows where .class files
+    are located as well as its source (optional) and javadoc (also optional).
+
+    [author:]
+        Jan Vrany <jan.vrany@fit.cvut.cz>
+
+    [instance variables:]
+
+    [class variables:]
+
+    [see also:]
+
+"
 ! !
 
 !JavaCodeLibrary methodsFor:'accessing'!
--- a/JavaCodeLibraryOrBundle.st	Sat Jan 12 16:47:13 2013 +0000
+++ b/JavaCodeLibraryOrBundle.st	Tue Jan 15 18:12:48 2013 +0000
@@ -83,18 +83,43 @@
 
 !JavaCodeLibraryOrBundle methodsFor:'generating'!
 
+classPath
+    ^OrderedCollection streamContents:[:s|self classPathOn: s]
+
+    "Created: / 15-01-2013 / 17:55:48 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
 classPathOn: aStream
     self subclassResponsibility
 
     "Created: / 12-01-2013 / 16:18:29 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 !
 
+sourcePath
+    ^OrderedCollection streamContents:[:s|self sourcePathOn: s]
+
+    "Created: / 15-01-2013 / 17:55:56 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
 sourcePathOn: aStream
     self subclassResponsibility
 
     "Created: / 12-01-2013 / 16:24:41 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 ! !
 
+!JavaCodeLibraryOrBundle methodsFor:'printing & storing'!
+
+printOn:aStream
+    "append a printed representation if the receiver to the argument, aStream"
+
+    super printOn:aStream.
+    aStream nextPut:$(.
+    name printOn: aStream.
+    aStream nextPut:$).
+
+    "Modified: / 15-01-2013 / 17:20:16 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+
 !JavaCodeLibraryOrBundle class methodsFor:'documentation'!
 
 version_HG
--- a/JavaRelease.st	Sat Jan 12 16:47:13 2013 +0000
+++ b/JavaRelease.st	Tue Jan 15 18:12:48 2013 +0000
@@ -261,23 +261,26 @@
     | src_zip |
 
     bundle isNil ifTrue:[
-        bundle := JavaCodeBundle new.
-        bundle name: self name.
-        src_zip := self sourcePath detect:[:p|p baseName = 'src.zip'].
+        | b |
+        b := JavaCodeBundle new.
+        b name: self name.
+        src_zip := self sourcePath detect:[:p|p endsWith:  'src.zip'].
 
         self classPath do:[:p|
             | lib |
 
             lib := JavaCodeLibrary new.
-            lib name: p baseName.
-            lib source: src_zip.
-
-            bundle add: lib.
+            lib name: p asFilename baseName.
+            lib classes: p.
+            lib sources: src_zip.
+            b add: lib.
         ].
+        bundle := b.
     ].
     ^bundle
 
     "Created: / 12-01-2013 / 15:50:58 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    "Modified: / 15-01-2013 / 16:44:34 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 !
 
 javaExtDirs
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/JavaRootBundle.st	Tue Jan 15 18:12:48 2013 +0000
@@ -0,0 +1,260 @@
+"
+ COPYRIGHT (c) 1996-2011 by Claus Gittinger
+
+ New code and modifications done at SWING Research Group [1]:
+
+ COPYRIGHT (c) 2010-2011 by Jan Vrany, Jan Kurs and Marcel Hlopko
+                            SWING Research Group, Czech Technical University in Prague
+
+ This software is furnished under a license and may be used
+ only in accordance with the terms of that license and with the
+ inclusion of the above copyright notice.   This software may not
+ be provided or otherwise made available to, or used by, any
+ other person.  No title to or ownership of the software is
+ hereby transferred.
+
+ [1] Code written at SWING Research Group contains a signature
+     of one of the above copright owners. For exact set of such code,
+     see the differences between this version and version stx:libjava
+     as of 1.9.2010
+"
+"{ Package: 'stx:libjava' }"
+
+JavaCodeBundle subclass:#JavaRootBundle
+	instanceVariableNames:'release environment packages user adhoc'
+	classVariableNames:''
+	poolDictionaries:''
+	category:'Languages-Java-Support-Libraries'
+!
+
+JavaCodeBundle subclass:#EnvironmentBundle
+	instanceVariableNames:''
+	classVariableNames:''
+	poolDictionaries:''
+	privateIn:JavaRootBundle
+!
+
+JavaCodeBundle subclass:#PackagesBundle
+	instanceVariableNames:''
+	classVariableNames:''
+	poolDictionaries:''
+	privateIn:JavaRootBundle
+!
+
+!JavaRootBundle class methodsFor:'documentation'!
+
+copyright
+"
+ COPYRIGHT (c) 1996-2011 by Claus Gittinger
+
+ New code and modifications done at SWING Research Group [1]:
+
+ COPYRIGHT (c) 2010-2011 by Jan Vrany, Jan Kurs and Marcel Hlopko
+                            SWING Research Group, Czech Technical University in Prague
+
+ This software is furnished under a license and may be used
+ only in accordance with the terms of that license and with the
+ inclusion of the above copyright notice.   This software may not
+ be provided or otherwise made available to, or used by, any
+ other person.  No title to or ownership of the software is
+ hereby transferred.
+
+ [1] Code written at SWING Research Group contains a signature
+     of one of the above copright owners. For exact set of such code,
+     see the differences between this version and version stx:libjava
+     as of 1.9.2010
+
+"
+!
+
+documentation
+"
+    A top-level bundle representing all accessible Java code
+
+    [author:]
+        Jan Vrany <jan.vrany@fit.cvut.cz>
+
+    [instance variables:]
+
+    [class variables:]
+
+    [see also:]
+
+"
+! !
+
+!JavaRootBundle methodsFor:'accessing'!
+
+libraries
+    {
+        self release.
+        environment.
+        packages.
+        user.
+        adhoc.
+    }
+
+    "Created: / 15-01-2013 / 17:50:30 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+name
+    ^ name ? '<root>'
+
+    "Created: / 15-01-2013 / 17:50:40 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+release
+    ^Java release codeBundle
+
+    "Modified: / 15-01-2013 / 17:59:14 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+
+!JavaRootBundle methodsFor:'adding & removing'!
+
+add: libraryOrBundle
+
+    self shouldNotImplement
+
+    "Created: / 15-01-2013 / 17:31:43 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+remove: libraryOrBundle
+
+    self shouldNotImplement
+
+    "Created: / 15-01-2013 / 17:31:52 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+
+!JavaRootBundle methodsFor:'generating'!
+
+classPathOn:aStream
+    "superclass JavaCodeLibraryOrBundle says that I am responsible to implement this method"
+
+    self release classPathOn: aStream.
+    environment classPathOn: aStream.
+    packages classPathOn: aStream.
+    user classPathOn: aStream.
+    adhoc classPathOn: aStream.
+
+    "Created: / 15-01-2013 / 17:51:19 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+sourcePathOn:aStream
+    "superclass JavaCodeLibraryOrBundle says that I am responsible to implement this method"
+
+    self release sourcePathOn: aStream.
+    environment sourcePathOn: aStream.
+    packages sourcePathOn: aStream.
+    user sourcePathOn: aStream.
+    adhoc sourcePathOn: aStream.
+
+    "Created: / 15-01-2013 / 17:51:35 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+
+!JavaRootBundle methodsFor:'initialization'!
+
+initialize
+    "Invoked when a new instance is created."
+
+    "/ please change as required (and remove this comment)
+    libraries := nil.
+    environment := EnvironmentBundle new name:'CLASSPATH'.
+    packages := PackagesBundle new name:'Package libraries'.
+    user := JavaCodeBundle new name:'User libraries'.
+    adhoc := JavaCodeBundle new name:'Ad-hoc'.
+
+
+    "/ super initialize.   -- commented since inherited method does nothing
+
+    "Created: / 15-01-2013 / 17:49:14 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+
+!JavaRootBundle::EnvironmentBundle class methodsFor:'documentation'!
+
+documentation
+"
+    A special 'dynamic' code bundle to represent java code paths
+    specified in CLASSPATH environment variable.
+
+    [author:]
+        Jan Vrany <jan.vrany@fit.cvut.cz>
+
+    [instance variables:]
+
+    [class variables:]
+
+    [see also:]
+
+"
+! !
+
+!JavaRootBundle::EnvironmentBundle methodsFor:'adding & removing'!
+
+add: libraryOrBundle
+
+    self shouldNotImplement
+
+    "Created: / 15-01-2013 / 17:31:43 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+remove: libraryOrBundle
+
+    self shouldNotImplement
+
+    "Created: / 15-01-2013 / 17:31:52 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+
+!JavaRootBundle::PackagesBundle class methodsFor:'documentation'!
+
+documentation
+"
+    A special 'dynamic' code bundle to represent all bundles
+    provided by individual packages.
+
+    [author:]
+        Jan Vrany <jan.vrany@fit.cvut.cz>
+
+    [instance variables:]
+
+    [class variables:]
+
+    [see also:]
+
+"
+! !
+
+!JavaRootBundle::PackagesBundle methodsFor:'accessing'!
+
+libraries
+
+    ^ProjectDefinition allSubclasses collect:[:e|e javaBundle] thenSelect:[:e|e notNil].
+
+    "
+    Java::PackagesBundle new libraries
+    "
+
+    "Created: / 15-01-2013 / 17:34:05 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+
+!JavaRootBundle::PackagesBundle methodsFor:'adding & removing'!
+
+add: libraryOrBundle
+
+    self shouldNotImplement
+
+    "Created: / 15-01-2013 / 17:31:56 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+remove: libraryOrBundle
+
+    self shouldNotImplement
+
+    "Created: / 15-01-2013 / 17:31:59 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+
+!JavaRootBundle class methodsFor:'documentation'!
+
+version_HG
+
+    ^ '$Changeset: <not expanded> $'
+! !
--- a/Make.proto	Sat Jan 12 16:47:13 2013 +0000
+++ b/Make.proto	Tue Jan 15 18:12:48 2013 +0000
@@ -271,6 +271,7 @@
 $(OUTDIR)JavaFieldRef2.$(O) JavaFieldRef2.$(H): JavaFieldRef2.st $(INCLUDE_TOP)/stx/libjava/JavaClassContentRef2.$(H) $(INCLUDE_TOP)/stx/libjava/JavaRef2.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
 $(OUTDIR)JavaMethodRef2.$(O) JavaMethodRef2.$(H): JavaMethodRef2.st $(INCLUDE_TOP)/stx/libjava/JavaClassContentRef2.$(H) $(INCLUDE_TOP)/stx/libjava/JavaRef2.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
 $(OUTDIR)JavaMethodWithException.$(O) JavaMethodWithException.$(H): JavaMethodWithException.st $(INCLUDE_TOP)/stx/libjava/JavaMethod.$(H) $(INCLUDE_TOP)/stx/libbasic/CompiledCode.$(H) $(INCLUDE_TOP)/stx/libbasic/ExecutableFunction.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
+$(OUTDIR)JavaRootBundle.$(O) JavaRootBundle.$(H): JavaRootBundle.st $(INCLUDE_TOP)/stx/libjava/JavaCodeBundle.$(H) $(INCLUDE_TOP)/stx/libjava/JavaCodeLibraryOrBundle.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
 $(OUTDIR)ProxyMethodAndNode.$(O) ProxyMethodAndNode.$(H): ProxyMethodAndNode.st $(INCLUDE_TOP)/stx/libjava/ProxyMethodConditionNode.$(H) $(INCLUDE_TOP)/stx/libjava/ProxyMethodNode.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
 $(OUTDIR)ProxyMethodBlockInvocationNode.$(O) ProxyMethodBlockInvocationNode.$(H): ProxyMethodBlockInvocationNode.st $(INCLUDE_TOP)/stx/libjava/ProxyMethodInvocationNode.$(H) $(INCLUDE_TOP)/stx/libjava/ProxyMethodNode.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
 $(OUTDIR)ProxyMethodJavaFieldGetter.$(O) ProxyMethodJavaFieldGetter.$(H): ProxyMethodJavaFieldGetter.st $(INCLUDE_TOP)/stx/libjava/ProxyMethodJavaFieldAccessor.$(H) $(INCLUDE_TOP)/stx/libjava/ProxyMethodNode.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
--- a/Make.spec	Sat Jan 12 16:47:13 2013 +0000
+++ b/Make.spec	Tue Jan 15 18:12:48 2013 +0000
@@ -170,6 +170,7 @@
 	JavaCodeLibraryOrBundle \
 	JavaCodeBundle \
 	JavaCodeLibrary \
+	JavaRootBundle \
 
 
 
@@ -295,6 +296,7 @@
     $(OUTDIR)JavaCodeLibraryOrBundle.$(O) \
     $(OUTDIR)JavaCodeBundle.$(O) \
     $(OUTDIR)JavaCodeLibrary.$(O) \
+    $(OUTDIR)JavaRootBundle.$(O) \
     $(OUTDIR)extensions.$(O) \
 
 
--- a/abbrev.stc	Sat Jan 12 16:47:13 2013 +0000
+++ b/abbrev.stc	Tue Jan 15 18:12:48 2013 +0000
@@ -148,3 +148,4 @@
 JavaCodeLibraryOrBundle JavaCodeLibraryOrBundle stx:libjava 'Languages-Java-Support-Libraries' 0
 JavaCodeBundle JavaCodeBundle stx:libjava 'Languages-Java-Support-Libraries' 0
 JavaCodeLibrary JavaCodeLibrary stx:libjava 'Languages-Java-Support-Libraries' 0
+JavaRootBundle JavaRootBundle stx:libjava 'Languages-Java-Support-Libraries' 0
--- a/bc.mak	Sat Jan 12 16:47:13 2013 +0000
+++ b/bc.mak	Tue Jan 15 18:12:48 2013 +0000
@@ -205,6 +205,7 @@
 $(OUTDIR)JavaFieldRef2.$(O) JavaFieldRef2.$(H): JavaFieldRef2.st $(INCLUDE_TOP)\stx\libjava\JavaClassContentRef2.$(H) $(INCLUDE_TOP)\stx\libjava\JavaRef2.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
 $(OUTDIR)JavaMethodRef2.$(O) JavaMethodRef2.$(H): JavaMethodRef2.st $(INCLUDE_TOP)\stx\libjava\JavaClassContentRef2.$(H) $(INCLUDE_TOP)\stx\libjava\JavaRef2.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
 $(OUTDIR)JavaMethodWithException.$(O) JavaMethodWithException.$(H): JavaMethodWithException.st $(INCLUDE_TOP)\stx\libjava\JavaMethod.$(H) $(INCLUDE_TOP)\stx\libbasic\CompiledCode.$(H) $(INCLUDE_TOP)\stx\libbasic\ExecutableFunction.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
+$(OUTDIR)JavaRootBundle.$(O) JavaRootBundle.$(H): JavaRootBundle.st $(INCLUDE_TOP)\stx\libjava\JavaCodeBundle.$(H) $(INCLUDE_TOP)\stx\libjava\JavaCodeLibraryOrBundle.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
 $(OUTDIR)ProxyMethodAndNode.$(O) ProxyMethodAndNode.$(H): ProxyMethodAndNode.st $(INCLUDE_TOP)\stx\libjava\ProxyMethodConditionNode.$(H) $(INCLUDE_TOP)\stx\libjava\ProxyMethodNode.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
 $(OUTDIR)ProxyMethodBlockInvocationNode.$(O) ProxyMethodBlockInvocationNode.$(H): ProxyMethodBlockInvocationNode.st $(INCLUDE_TOP)\stx\libjava\ProxyMethodInvocationNode.$(H) $(INCLUDE_TOP)\stx\libjava\ProxyMethodNode.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
 $(OUTDIR)ProxyMethodJavaFieldGetter.$(O) ProxyMethodJavaFieldGetter.$(H): ProxyMethodJavaFieldGetter.st $(INCLUDE_TOP)\stx\libjava\ProxyMethodJavaFieldAccessor.$(H) $(INCLUDE_TOP)\stx\libjava\ProxyMethodNode.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
--- a/experiments/abbrev.stc	Sat Jan 12 16:47:13 2013 +0000
+++ b/experiments/abbrev.stc	Tue Jan 15 18:12:48 2013 +0000
@@ -9,7 +9,7 @@
 SetSample SetSample stx:libjava/experiments 'Languages-Java-Experiments-Tests' 0
 Benchmarks::JavaLookup Benchmarks__JavaLookup stx:libjava/experiments 'benchmarks-Misc' 0
 JavaByteCodeInterpreter JavaByteCodeInterpreter stx:libjava/experiments 'Languages-Java-Bytecode' 0
-JavaByteCodeInterpreterTests JavaByteCodeInterpreterTests stx:libjava/experiments 'Languages-Java-Tests' 1
+JavaByteCodeInterpreterTests JavaByteCodeInterpreterTests stx:libjava/experiments 'Languages-Java-Tests' 0
 JavaByteCodeSteppableInterpreter JavaByteCodeSteppableInterpreter stx:libjava/experiments 'Languages-Java-Bytecode' 0
 ClassReloadingTests ClassReloadingTests stx:libjava/experiments 'Languages-Java-Tests-ClassReloading' 1
 JavaCompiler JavaCompiler stx:libjava/experiments 'Languages-Java-Support-Compiling' 0
--- a/experiments/experiments.rc	Sat Jan 12 16:47:13 2013 +0000
+++ b/experiments/experiments.rc	Tue Jan 15 18:12:48 2013 +0000
@@ -22,10 +22,10 @@
       VALUE "FileDescription", "Smalltalk/X Class library (LIB)\0"
       VALUE "FileVersion", "6.2.32767.32767\0"
       VALUE "InternalName", "stx:libjava/experiments\0"
-      VALUE "LegalCopyright", "Copyright Claus Gittinger 1988-2012\nCopyright eXept Software AG 1998-2012\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, 21 Dec 2012 18:14:42 GMT\0"
+      VALUE "ProductDate", "Tue, 15 Jan 2013 18:09:19 GMT\0"
     END
 
   END
--- a/experiments/stx_libjava_experiments.st	Sat Jan 12 16:47:13 2013 +0000
+++ b/experiments/stx_libjava_experiments.st	Tue Jan 15 18:12:48 2013 +0000
@@ -134,31 +134,11 @@
 
 !stx_libjava_experiments class methodsFor:'description - java'!
 
-javaClassPath
-
-    <javaclasspath>
-
-    ^{ 
-        self packageDirectory / 'java' / 'bin' .
-        self packageDirectory / 'java' / 'libs' / '*.jar' .
-        JavaCompiler fileOutDirectory.
-    }
+javaBundle
 
-    "Created: / 17-11-2011 / 23:00:22 / Jan Vrany <jan.vrany@fit.cvut.cz>"
-    "Modified: / 15-12-2012 / 23:03:15 / Jan Vrany <jan.vrany@fit.cvut.cz>"
-!
-
-javaSourcePath
-
-    <javasourcepath>
+    ^JavaCodeBundle standardPackageBundleFor: self package
 
-    ^{ 
-        self packageDirectory / 'java' / 'src' .
-        JavaCompiler fileOutDirectory.
-    }
-
-    "Created: / 17-11-2011 / 23:01:02 / Jan Vrany <jan.vrany@fit.cvut.cz>"
-    "Modified: / 15-12-2012 / 23:03:25 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    "Created: / 15-01-2013 / 17:35:40 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 ! !
 
 !stx_libjava_experiments class methodsFor:'description - svn'!
--- a/extensions.st	Sat Jan 12 16:47:13 2013 +0000
+++ b/extensions.st	Tue Jan 15 18:12:48 2013 +0000
@@ -1347,6 +1347,17 @@
 
 !ProjectDefinition class methodsFor:'description - java'!
 
+javaBundle
+    "Defines a Java code bundle provided by this package.
+     Used by STX:LIBJAVA"
+
+    ^nil
+
+    "Created: / 15-01-2013 / 16:49:38 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+
+!ProjectDefinition class methodsFor:'description - java'!
+
 javaClassPath
 
     "Defines a Java class path containing java classes/jars
--- a/libInit.cc	Sat Jan 12 16:47:13 2013 +0000
+++ b/libInit.cc	Tue Jan 15 18:12:48 2013 +0000
@@ -135,6 +135,7 @@
 _JavaFieldRef2_Init(pass,__pRT__,snd);
 _JavaMethodRef2_Init(pass,__pRT__,snd);
 _JavaMethodWithException_Init(pass,__pRT__,snd);
+_JavaRootBundle_Init(pass,__pRT__,snd);
 _ProxyMethodAndNode_Init(pass,__pRT__,snd);
 _ProxyMethodBlockInvocationNode_Init(pass,__pRT__,snd);
 _ProxyMethodJavaFieldGetter_Init(pass,__pRT__,snd);
--- a/libjava.rc	Sat Jan 12 16:47:13 2013 +0000
+++ b/libjava.rc	Tue Jan 15 18:12:48 2013 +0000
@@ -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, 12 Jan 2013 16:42:02 GMT\0"
+      VALUE "ProductDate", "Tue, 15 Jan 2013 18:09:40 GMT\0"
     END
 
   END
--- a/stx_libjava.st	Sat Jan 12 16:47:13 2013 +0000
+++ b/stx_libjava.st	Tue Jan 15 18:12:48 2013 +0000
@@ -159,17 +159,17 @@
      exclude individual packages in the #excludedFromPrerequisites method."
 
     ^ #(
-        #'stx:goodies/sunit'    "TestAsserter - superclass of JavaTestCaseProxy "
-        #'stx:libbasic'    "CharacterArray - superclass of extended String "
-        #'stx:libbasic2'    "BitArray - superclass of extended BooleanArray "
+        #'stx:goodies/sunit'    "TestSuite - referenced by stx_libjava class>>testSuite "
+        #'stx:libbasic'    "IdentityDictionary - superclass of extended UserPreferences "
+        #'stx:libbasic2'    "UnboxedIntegerArray - superclass of extended WordArray "
         #'stx:libbasic3'    "MessageTracer - referenced by JavaMethod>>setBreakPoint "
-        #'stx:libcomp'    "ByteCodeCompiler - referenced by ProxyMethodCompiler>>compile "
+        #'stx:libcomp'    "StatementNode - referenced by ProxyMethodGuardNode>>generate: "
         #'stx:libhtml'    "URL - referenced by JavaEmbeddedFrameView>>setupAppletFrameIn:initializeJava: "
         #'stx:libtool'    "WorkspaceApplication - referenced by GroovyEvaluator>>evaluate:in:receiver:notifying:logged:ifFail: "
-        #'stx:libview'    "PopUpView - superclass of JavaPopUpView "
-        #'stx:libview2'    "Plug - referenced by JavaSourceCodeCache>>findMethodLine:inMethods: "
-        #'stx:libwidg'    "Label - referenced by JavaVM class>>_WLabelPeer_create: "
-        #'stx:libwidg2'    "ComboListView - referenced by JavaVM class>>_WChoicePeer_create: "
+        #'stx:libview'    "SimpleView - superclass of JavaEmbeddedFrameView "
+        #'stx:libview2'    "GIFReader - referenced by JavaVM class>>_GifImageDecoder_parseImage: "
+        #'stx:libwidg'    "HorizontalScrollBar - referenced by JavaVM class>>_WScrollPanePeer__getHScrollbarHeight: "
+        #'stx:libwidg2'    "MenuPanel - referenced by JavaVM class>>processEvent: "
     )
 ! !
 
@@ -415,9 +415,8 @@
         JavaCodeLibraryOrBundle
         JavaCodeBundle
         JavaCodeLibrary
+        JavaRootBundle
     )
-
-    "Modified: / 12-01-2013 / 16:39:20 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 !
 
 extensionMethodNames
@@ -588,35 +587,27 @@
         'Boolean class' javaWrapRequired
         CharacterArray withoutSuffix:
         ExecutableFunction isProxyMethod
+        'ProjectDefinition class' javaBundle
     )
-
-    "Modified: / 16-12-2012 / 14:11:37 / Marcel Hlopko <marcel.hlopko@fit.cvut.cz>"
 ! !
 
 !stx_libjava class methodsFor:'description - java'!
 
-javaClassPath
-
-    <javaclasspath>
+javaBundle
 
-    ^{ 
-        self packageDirectory / 'java' / 'bin' .
-        self packageDirectory / 'java' / 'libs' / '*.jar' 
-    }
+    ^JavaCodeBundle standardPackageBundleFor: self package
 
-    "Created: / 17-11-2011 / 23:00:22 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    "Created: / 15-01-2013 / 17:35:34 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 !
 
-javaSourcePath
-
-    <javasourcepath>
+javaClassPath
+    <resource: #obsolete>
 
-    ^{ 
-        self packageDirectory / 'java' / 'src' .
-        self packageDirectory / 'java' / 'libs-src' / '*.jar' .            
-    }
+    "Defines paths to Java .class files (for packages that
+     contains Java code"    
+    ^#()
 
-    "Created: / 17-11-2011 / 23:01:02 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    "Created: / 15-01-2013 / 18:04:19 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 ! !
 
 !stx_libjava class methodsFor:'description - project information'!
--- a/tools/Make.proto	Sat Jan 12 16:47:13 2013 +0000
+++ b/tools/Make.proto	Tue Jan 15 18:12:48 2013 +0000
@@ -164,7 +164,7 @@
 $(OUTDIR)JavaParser_Eclipse.$(O) JavaParser_Eclipse.$(H): JavaParser_Eclipse.st $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
 $(OUTDIR)JavaScannerBase.$(O) JavaScannerBase.$(H): JavaScannerBase.st $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
 $(OUTDIR)JavaSetInspectorView.$(O) JavaSetInspectorView.$(H): JavaSetInspectorView.st $(INCLUDE_TOP)/stx/libtool/SetInspectorView.$(H) $(INCLUDE_TOP)/stx/libtool/InspectorView.$(H) $(INCLUDE_TOP)/stx/libview/SimpleView.$(H) $(INCLUDE_TOP)/stx/libview/DisplaySurface.$(H) $(INCLUDE_TOP)/stx/libview/GraphicsMedium.$(H) $(INCLUDE_TOP)/stx/libview/DeviceGraphicsContext.$(H) $(INCLUDE_TOP)/stx/libview/GraphicsContext.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
-$(OUTDIR)JavaSettingsApplication.$(O) JavaSettingsApplication.$(H): JavaSettingsApplication.st $(INCLUDE_TOP)/stx/libtool/AbstractSettingsApplication.$(H) $(INCLUDE_TOP)/stx/libview2/ApplicationModel.$(H) $(INCLUDE_TOP)/stx/libview2/Model.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(INCLUDE_TOP)/stx/libwidg2/HierarchicalItem.$(H) $(INCLUDE_TOP)/stx/libview2/SimpleDialog.$(H) $(INCLUDE_TOP)/stx/libwidg2/HierarchicalList.$(H) $(INCLUDE_TOP)/stx/libbasic2/List.$(H) $(INCLUDE_TOP)/stx/libbasic/OrderedCollection.$(H) $(INCLUDE_TOP)/stx/libbasic/SequenceableCollection.$(H) $(INCLUDE_TOP)/stx/libbasic/Collection.$(H) $(STCHDR)
+$(OUTDIR)JavaSettingsApplication.$(O) JavaSettingsApplication.$(H): JavaSettingsApplication.st $(INCLUDE_TOP)/stx/libtool/AbstractSettingsApplication.$(H) $(INCLUDE_TOP)/stx/libview2/ApplicationModel.$(H) $(INCLUDE_TOP)/stx/libview2/Model.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(INCLUDE_TOP)/stx/libview2/SimpleDialog.$(H) $(INCLUDE_TOP)/stx/libwidg2/HierarchicalItem.$(H) $(INCLUDE_TOP)/stx/libwidg2/HierarchicalList.$(H) $(INCLUDE_TOP)/stx/libbasic2/List.$(H) $(INCLUDE_TOP)/stx/libbasic/OrderedCollection.$(H) $(INCLUDE_TOP)/stx/libbasic/SequenceableCollection.$(H) $(INCLUDE_TOP)/stx/libbasic/Collection.$(H) $(STCHDR)
 $(OUTDIR)JavaSourcePartitionerTests.$(O) JavaSourcePartitionerTests.$(H): JavaSourcePartitionerTests.st $(INCLUDE_TOP)/stx/goodies/petitparser/PPCompositeParserTest.$(H) $(INCLUDE_TOP)/stx/goodies/petitparser/PPAbstractParseTest.$(H) $(INCLUDE_TOP)/stx/goodies/sunit/TestCase.$(H) $(INCLUDE_TOP)/stx/goodies/sunit/TestAsserter.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
 $(OUTDIR)JavaSourceReference.$(O) JavaSourceReference.$(H): JavaSourceReference.st $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
 $(OUTDIR)stx_libjava_tools.$(O) stx_libjava_tools.$(H): stx_libjava_tools.st $(INCLUDE_TOP)/stx/libbasic/LibraryDefinition.$(H) $(INCLUDE_TOP)/stx/libbasic/ProjectDefinition.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
@@ -185,9 +185,8 @@
 $(OUTDIR)JavaIntTypeNode.$(O) JavaIntTypeNode.$(H): JavaIntTypeNode.st $(INCLUDE_TOP)/stx/libjava/tools/JavaTypeNode.$(H) $(INCLUDE_TOP)/stx/libjava/tools/JavaParseNode.$(H) $(INCLUDE_TOP)/stx/libcomp/ParseNode.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
 $(OUTDIR)JavaLongTypeNode.$(O) JavaLongTypeNode.$(H): JavaLongTypeNode.st $(INCLUDE_TOP)/stx/libjava/tools/JavaTypeNode.$(H) $(INCLUDE_TOP)/stx/libjava/tools/JavaParseNode.$(H) $(INCLUDE_TOP)/stx/libcomp/ParseNode.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
 $(OUTDIR)JavaParser.$(O) JavaParser.$(H): JavaParser.st $(INCLUDE_TOP)/stx/libjava/tools/JavaParserII.$(H) $(INCLUDE_TOP)/stx/libjava/tools/JavaParserI.$(H) $(INCLUDE_TOP)/stx/goodies/petitparser/PPCompositeParser.$(H) $(INCLUDE_TOP)/stx/goodies/petitparser/PPDelegateParser.$(H) $(INCLUDE_TOP)/stx/goodies/petitparser/PPParser.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
-$(OUTDIR)JavaSourcePartitioner.$(O) JavaSourcePartitioner.$(H): JavaSourcePartitioner.st $(INCLUDE_TOP)/stx/libjava/tools/JavaParserII.$(H) $(INCLUDE_TOP)/stx/libjava/tools/JavaParserI.$(H) $(INCLUDE_TOP)/stx/goodies/petitparser/PPCompositeParser.$(H) $(INCLUDE_TOP)/stx/goodies/petitparser/PPDelegateParser.$(H) $(INCLUDE_TOP)/stx/goodies/petitparser/PPParser.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
 $(OUTDIR)JavaVoidTypeNode.$(O) JavaVoidTypeNode.$(H): JavaVoidTypeNode.st $(INCLUDE_TOP)/stx/libjava/tools/JavaTypeNode.$(H) $(INCLUDE_TOP)/stx/libjava/tools/JavaParseNode.$(H) $(INCLUDE_TOP)/stx/libcomp/ParseNode.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
-$(OUTDIR)JavaSyntaxHighlighter.$(O) JavaSyntaxHighlighter.$(H): JavaSyntaxHighlighter.st $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(INCLUDE_TOP)/stx/libjava/tools/JavaParser.$(H) $(INCLUDE_TOP)/stx/libjava/tools/JavaParserII.$(H) $(INCLUDE_TOP)/stx/libjava/tools/JavaParserI.$(H) $(INCLUDE_TOP)/stx/goodies/petitparser/PPCompositeParser.$(H) $(INCLUDE_TOP)/stx/goodies/petitparser/PPDelegateParser.$(H) $(INCLUDE_TOP)/stx/goodies/petitparser/PPParser.$(H) $(INCLUDE_TOP)/stx/libjava/tools/JavaScanner.$(H) $(INCLUDE_TOP)/stx/libjava/tools/JavaScannerBase.$(H) $(INCLUDE_TOP)/stx/libjava/tools/JavaParseNodeBuilder.$(H) $(STCHDR)
+$(OUTDIR)JavaSyntaxHighlighter.$(O) JavaSyntaxHighlighter.$(H): JavaSyntaxHighlighter.st $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(INCLUDE_TOP)/stx/libjava/tools/JavaScanner.$(H) $(INCLUDE_TOP)/stx/libjava/tools/JavaScannerBase.$(H) $(INCLUDE_TOP)/stx/libjava/tools/JavaParser.$(H) $(INCLUDE_TOP)/stx/libjava/tools/JavaParserII.$(H) $(INCLUDE_TOP)/stx/libjava/tools/JavaParserI.$(H) $(INCLUDE_TOP)/stx/goodies/petitparser/PPCompositeParser.$(H) $(INCLUDE_TOP)/stx/goodies/petitparser/PPDelegateParser.$(H) $(INCLUDE_TOP)/stx/goodies/petitparser/PPParser.$(H) $(INCLUDE_TOP)/stx/libjava/tools/JavaParseNodeBuilder.$(H) $(STCHDR)
 $(OUTDIR)extensions.$(O): extensions.st $(INCLUDE_TOP)/stx/libjava/JavaClass.$(H) $(INCLUDE_TOP)/stx/libjava/JavaBehavior.$(H) $(INCLUDE_TOP)/stx/libbasic/Class.$(H) $(INCLUDE_TOP)/stx/libbasic/ClassDescription.$(H) $(INCLUDE_TOP)/stx/libbasic/Behavior.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(INCLUDE_TOP)/stx/libjava/JavaObject.$(H) $(INCLUDE_TOP)/stx/libtool/Tools__NewSystemBrowser.$(H) $(INCLUDE_TOP)/stx/libtool/SystemBrowser.$(H) $(INCLUDE_TOP)/stx/libview2/ApplicationModel.$(H) $(INCLUDE_TOP)/stx/libview2/Model.$(H) $(INCLUDE_TOP)/stx/libbasic/ConfigurableFeatures.$(H) $(INCLUDE_TOP)/stx/libwidg/GenericToolbarIconLibrary.$(H) $(STCHDR)
 
 # ENDMAKEDEPEND --- do not remove this line
--- a/tools/Make.spec	Sat Jan 12 16:47:13 2013 +0000
+++ b/tools/Make.spec	Tue Jan 15 18:12:48 2013 +0000
@@ -78,9 +78,9 @@
 	JavaScannerBase \
 	JavaScanner \
 	JavaSyntaxHighlighter \
-	JavaSourcePartitioner \
 	JavaSettingsApplication \
 	JavaSourceReference \
+	JavaSourcePartitionerTests \
 
 
 
@@ -114,9 +114,9 @@
     $(OUTDIR)JavaScannerBase.$(O) \
     $(OUTDIR)JavaScanner.$(O) \
     $(OUTDIR)JavaSyntaxHighlighter.$(O) \
-    $(OUTDIR)JavaSourcePartitioner.$(O) \
     $(OUTDIR)JavaSettingsApplication.$(O) \
     $(OUTDIR)JavaSourceReference.$(O) \
+    $(OUTDIR)JavaSourcePartitionerTests.$(O) \
     $(OUTDIR)extensions.$(O) \
 
 
--- a/tools/bc.mak	Sat Jan 12 16:47:13 2013 +0000
+++ b/tools/bc.mak	Tue Jan 15 18:12:48 2013 +0000
@@ -89,7 +89,7 @@
 $(OUTDIR)JavaParser_Eclipse.$(O) JavaParser_Eclipse.$(H): JavaParser_Eclipse.st $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
 $(OUTDIR)JavaScannerBase.$(O) JavaScannerBase.$(H): JavaScannerBase.st $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
 $(OUTDIR)JavaSetInspectorView.$(O) JavaSetInspectorView.$(H): JavaSetInspectorView.st $(INCLUDE_TOP)\stx\libtool\SetInspectorView.$(H) $(INCLUDE_TOP)\stx\libtool\InspectorView.$(H) $(INCLUDE_TOP)\stx\libview\SimpleView.$(H) $(INCLUDE_TOP)\stx\libview\DisplaySurface.$(H) $(INCLUDE_TOP)\stx\libview\GraphicsMedium.$(H) $(INCLUDE_TOP)\stx\libview\DeviceGraphicsContext.$(H) $(INCLUDE_TOP)\stx\libview\GraphicsContext.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
-$(OUTDIR)JavaSettingsApplication.$(O) JavaSettingsApplication.$(H): JavaSettingsApplication.st $(INCLUDE_TOP)\stx\libtool\AbstractSettingsApplication.$(H) $(INCLUDE_TOP)\stx\libview2\ApplicationModel.$(H) $(INCLUDE_TOP)\stx\libview2\Model.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(INCLUDE_TOP)\stx\libwidg2\HierarchicalItem.$(H) $(INCLUDE_TOP)\stx\libview2\SimpleDialog.$(H) $(INCLUDE_TOP)\stx\libwidg2\HierarchicalList.$(H) $(INCLUDE_TOP)\stx\libbasic2\List.$(H) $(INCLUDE_TOP)\stx\libbasic\OrderedCollection.$(H) $(INCLUDE_TOP)\stx\libbasic\SequenceableCollection.$(H) $(INCLUDE_TOP)\stx\libbasic\Collection.$(H) $(STCHDR)
+$(OUTDIR)JavaSettingsApplication.$(O) JavaSettingsApplication.$(H): JavaSettingsApplication.st $(INCLUDE_TOP)\stx\libtool\AbstractSettingsApplication.$(H) $(INCLUDE_TOP)\stx\libview2\ApplicationModel.$(H) $(INCLUDE_TOP)\stx\libview2\Model.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(INCLUDE_TOP)\stx\libview2\SimpleDialog.$(H) $(INCLUDE_TOP)\stx\libwidg2\HierarchicalItem.$(H) $(INCLUDE_TOP)\stx\libwidg2\HierarchicalList.$(H) $(INCLUDE_TOP)\stx\libbasic2\List.$(H) $(INCLUDE_TOP)\stx\libbasic\OrderedCollection.$(H) $(INCLUDE_TOP)\stx\libbasic\SequenceableCollection.$(H) $(INCLUDE_TOP)\stx\libbasic\Collection.$(H) $(STCHDR)
 $(OUTDIR)JavaSourcePartitionerTests.$(O) JavaSourcePartitionerTests.$(H): JavaSourcePartitionerTests.st $(INCLUDE_TOP)\stx\goodies\petitparser\PPCompositeParserTest.$(H) $(INCLUDE_TOP)\stx\goodies\petitparser\PPAbstractParseTest.$(H) $(INCLUDE_TOP)\stx\goodies\sunit\TestCase.$(H) $(INCLUDE_TOP)\stx\goodies\sunit\TestAsserter.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
 $(OUTDIR)JavaSourceReference.$(O) JavaSourceReference.$(H): JavaSourceReference.st $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
 $(OUTDIR)stx_libjava_tools.$(O) stx_libjava_tools.$(H): stx_libjava_tools.st $(INCLUDE_TOP)\stx\libbasic\LibraryDefinition.$(H) $(INCLUDE_TOP)\stx\libbasic\ProjectDefinition.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
@@ -110,9 +110,8 @@
 $(OUTDIR)JavaIntTypeNode.$(O) JavaIntTypeNode.$(H): JavaIntTypeNode.st $(INCLUDE_TOP)\stx\libjava\tools\JavaTypeNode.$(H) $(INCLUDE_TOP)\stx\libjava\tools\JavaParseNode.$(H) $(INCLUDE_TOP)\stx\libcomp\ParseNode.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
 $(OUTDIR)JavaLongTypeNode.$(O) JavaLongTypeNode.$(H): JavaLongTypeNode.st $(INCLUDE_TOP)\stx\libjava\tools\JavaTypeNode.$(H) $(INCLUDE_TOP)\stx\libjava\tools\JavaParseNode.$(H) $(INCLUDE_TOP)\stx\libcomp\ParseNode.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
 $(OUTDIR)JavaParser.$(O) JavaParser.$(H): JavaParser.st $(INCLUDE_TOP)\stx\libjava\tools\JavaParserII.$(H) $(INCLUDE_TOP)\stx\libjava\tools\JavaParserI.$(H) $(INCLUDE_TOP)\stx\goodies\petitparser\PPCompositeParser.$(H) $(INCLUDE_TOP)\stx\goodies\petitparser\PPDelegateParser.$(H) $(INCLUDE_TOP)\stx\goodies\petitparser\PPParser.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
-$(OUTDIR)JavaSourcePartitioner.$(O) JavaSourcePartitioner.$(H): JavaSourcePartitioner.st $(INCLUDE_TOP)\stx\libjava\tools\JavaParserII.$(H) $(INCLUDE_TOP)\stx\libjava\tools\JavaParserI.$(H) $(INCLUDE_TOP)\stx\goodies\petitparser\PPCompositeParser.$(H) $(INCLUDE_TOP)\stx\goodies\petitparser\PPDelegateParser.$(H) $(INCLUDE_TOP)\stx\goodies\petitparser\PPParser.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
 $(OUTDIR)JavaVoidTypeNode.$(O) JavaVoidTypeNode.$(H): JavaVoidTypeNode.st $(INCLUDE_TOP)\stx\libjava\tools\JavaTypeNode.$(H) $(INCLUDE_TOP)\stx\libjava\tools\JavaParseNode.$(H) $(INCLUDE_TOP)\stx\libcomp\ParseNode.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
-$(OUTDIR)JavaSyntaxHighlighter.$(O) JavaSyntaxHighlighter.$(H): JavaSyntaxHighlighter.st $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(INCLUDE_TOP)\stx\libjava\tools\JavaParser.$(H) $(INCLUDE_TOP)\stx\libjava\tools\JavaParserII.$(H) $(INCLUDE_TOP)\stx\libjava\tools\JavaParserI.$(H) $(INCLUDE_TOP)\stx\goodies\petitparser\PPCompositeParser.$(H) $(INCLUDE_TOP)\stx\goodies\petitparser\PPDelegateParser.$(H) $(INCLUDE_TOP)\stx\goodies\petitparser\PPParser.$(H) $(INCLUDE_TOP)\stx\libjava\tools\JavaScanner.$(H) $(INCLUDE_TOP)\stx\libjava\tools\JavaScannerBase.$(H) $(INCLUDE_TOP)\stx\libjava\tools\JavaParseNodeBuilder.$(H) $(STCHDR)
+$(OUTDIR)JavaSyntaxHighlighter.$(O) JavaSyntaxHighlighter.$(H): JavaSyntaxHighlighter.st $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(INCLUDE_TOP)\stx\libjava\tools\JavaScanner.$(H) $(INCLUDE_TOP)\stx\libjava\tools\JavaScannerBase.$(H) $(INCLUDE_TOP)\stx\libjava\tools\JavaParser.$(H) $(INCLUDE_TOP)\stx\libjava\tools\JavaParserII.$(H) $(INCLUDE_TOP)\stx\libjava\tools\JavaParserI.$(H) $(INCLUDE_TOP)\stx\goodies\petitparser\PPCompositeParser.$(H) $(INCLUDE_TOP)\stx\goodies\petitparser\PPDelegateParser.$(H) $(INCLUDE_TOP)\stx\goodies\petitparser\PPParser.$(H) $(INCLUDE_TOP)\stx\libjava\tools\JavaParseNodeBuilder.$(H) $(STCHDR)
 $(OUTDIR)extensions.$(O): extensions.st $(INCLUDE_TOP)\stx\libjava\JavaClass.$(H) $(INCLUDE_TOP)\stx\libjava\JavaBehavior.$(H) $(INCLUDE_TOP)\stx\libbasic\Class.$(H) $(INCLUDE_TOP)\stx\libbasic\ClassDescription.$(H) $(INCLUDE_TOP)\stx\libbasic\Behavior.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(INCLUDE_TOP)\stx\libjava\JavaObject.$(H) $(INCLUDE_TOP)\stx\libtool\Tools__NewSystemBrowser.$(H) $(INCLUDE_TOP)\stx\libtool\SystemBrowser.$(H) $(INCLUDE_TOP)\stx\libview2\ApplicationModel.$(H) $(INCLUDE_TOP)\stx\libview2\Model.$(H) $(INCLUDE_TOP)\stx\libbasic\ConfigurableFeatures.$(H) $(INCLUDE_TOP)\stx\libwidg\GenericToolbarIconLibrary.$(H) $(STCHDR)
 
 # ENDMAKEDEPEND --- do not remove this line
--- a/tools/libInit.cc	Sat Jan 12 16:47:13 2013 +0000
+++ b/tools/libInit.cc	Tue Jan 15 18:12:48 2013 +0000
@@ -36,6 +36,7 @@
 _JavaScannerBase_Init(pass,__pRT__,snd);
 _JavaSetInspectorView_Init(pass,__pRT__,snd);
 _JavaSettingsApplication_Init(pass,__pRT__,snd);
+_JavaSourcePartitionerTests_Init(pass,__pRT__,snd);
 _JavaSourceReference_Init(pass,__pRT__,snd);
 _stx_137libjava_137tools_Init(pass,__pRT__,snd);
 _JavaCommentNode_Init(pass,__pRT__,snd);
@@ -55,7 +56,6 @@
 _JavaIntTypeNode_Init(pass,__pRT__,snd);
 _JavaLongTypeNode_Init(pass,__pRT__,snd);
 _JavaParser_Init(pass,__pRT__,snd);
-_JavaSourcePartitioner_Init(pass,__pRT__,snd);
 _JavaVoidTypeNode_Init(pass,__pRT__,snd);
 _JavaSyntaxHighlighter_Init(pass,__pRT__,snd);
 
--- a/tools/stx_libjava_tools.st	Sat Jan 12 16:47:13 2013 +0000
+++ b/tools/stx_libjava_tools.st	Tue Jan 15 18:12:48 2013 +0000
@@ -122,28 +122,11 @@
 
 !stx_libjava_tools class methodsFor:'description - java'!
 
-javaClassPath
-
-    <javaclasspath>
-
-    ^{ 
-        self packageDirectory / 'java' / 'bin' .
-        self packageDirectory / 'java' / 'libs' / '*.jar' 
-    }
+javaBundle
 
-    "Created: / 17-11-2011 / 23:00:22 / Jan Vrany <jan.vrany@fit.cvut.cz>"
-!
-
-javaSourcePath
-
-    <javasourcepath>
+    ^JavaCodeBundle standardPackageBundleFor: self package
 
-    ^{ 
-        self packageDirectory / 'java' / 'src' .
-        self packageDirectory / 'java' / 'libs-src' / '*.jar' .            
-    }
-
-    "Created: / 17-11-2011 / 23:01:02 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    "Created: / 15-01-2013 / 17:35:46 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 ! !
 
 !stx_libjava_tools class methodsFor:'description - project information'!
--- a/tools/tools.rc	Sat Jan 12 16:47:13 2013 +0000
+++ b/tools/tools.rc	Tue Jan 15 18:12:48 2013 +0000
@@ -25,7 +25,7 @@
       VALUE "LegalCopyright", "Copyright Claus Gittinger 1988-2011\nCopyright eXept Software AG 1998-2011\0"
       VALUE "ProductName", "Smalltalk/X\0"
       VALUE "ProductVersion", "6.2.3.0\0"
-      VALUE "ProductDate", "Fri, 11 Jan 2013 12:37:05 GMT\0"
+      VALUE "ProductDate", "Tue, 15 Jan 2013 18:05:00 GMT\0"
     END
 
   END