Smalltalk Lookup introduced jk_new_structure
authorkursjan
Tue, 06 Sep 2011 20:30:03 +0000
branchjk_new_structure
changeset 983 141dddae800b
parent 982 fe59c99b319a
child 984 7b6388093236
Smalltalk Lookup introduced
src/JavaLookup.st
src/LookupIntegrationTests.st
src/Make.proto
src/Make.spec
src/PersonSample.st
src/SmalltalkLookup.st
src/abbrev.stc
src/bc.mak
src/libInit.cc
src/libjava.rc
--- a/src/JavaLookup.st	Tue Sep 06 19:50:08 2011 +0000
+++ b/src/JavaLookup.st	Tue Sep 06 20:30:03 2011 +0000
@@ -166,24 +166,6 @@
 
 !JavaLookup methodsFor:'lookup'!
 
-javaSelectorsFor:class
-    | selectors cls |
-    cls := class.
-    selectors := IdentitySet new.
-
-    [cls = JavaObject] whileFalse: [
-        cls methodDictionary keysAndValuesDo: [:k :v |
-            (v isJavaMethod and: [v isStatic = searchStatic]) ifTrue: [
-                selectors add: k.
-            ].
-        ].
-        cls := cls superclass.
-    ].
-    ^ selectors.
-
-    "Created: / 30-08-2011 / 20:45:57 / Jan Kurs <kursjan@fit.cvut.cz>"
-!
-
 lookupMethodForSelector:selector directedTo:initialSearchClass for:aReceiver withArguments:argArrayOrNil from:sendingContext
 
     "As a courtesy to a Smalltalker, try to map smalltalk selectors to a
@@ -217,11 +199,11 @@
                 for: receiver
                 withArguments: args
                 from: sender.
-        method ifNil: [ Error raiseErrorString: 'method not found' ].
+
         retval := receiver perform: method selector withArguments: args. 
         ^ self unbox: retval returnType: method returnType.
 
-    "Modified: / 05-09-2011 / 21:05:26 / Jan Kurs <kursjan@fit.cvut.cz>"
+    "Modified (format): / 06-09-2011 / 22:08:04 / Jan Kurs <kursjan@fit.cvut.cz>"
 ! !
 
 !JavaLookup methodsFor:'matching'!
@@ -281,6 +263,24 @@
     ^ Error raiseErrorString: 'Ambiguous selector: ', smalltalkMethod name.
 
     "Created: / 29-08-2011 / 20:50:14 / Jan Kurs <kursjan@fit.cvut.cz>"
+!
+
+javaSelectorsFor:class
+    | selectors cls |
+    cls := class.
+    selectors := IdentitySet new.
+
+    [cls = JavaObject] whileFalse: [
+        cls methodDictionary keysAndValuesDo: [:k :v |
+            (v isJavaMethod and: [v isStatic = searchStatic]) ifTrue: [
+                selectors add: k.
+            ].
+        ].
+        cls := cls superclass.
+    ].
+    ^ selectors.
+
+    "Created: / 06-09-2011 / 22:20:34 / Jan Kurs <kursjan@fit.cvut.cz>"
 ! !
 
 !JavaLookup class methodsFor:'documentation'!
--- a/src/LookupIntegrationTests.st	Tue Sep 06 19:50:08 2011 +0000
+++ b/src/LookupIntegrationTests.st	Tue Sep 06 20:30:03 2011 +0000
@@ -200,6 +200,21 @@
     "Created: / 05-09-2011 / 20:18:30 / Jan Kurs <kursjan@fit.cvut.cz>"
 !
 
+testPersonManipulator
+    "test type overloading"
+    | person |
+    person := PersonSample new.
+
+    person name: 'Anne'.
+    person age: 18.
+
+    self 
+        assert:(self personManipulatorClass new getPersonName: person) = 'Anne'.
+
+    "Created: / 11-04-2011 / 20:02:54 / kursjan <kursjan@fit.cvut.cz>"
+    "Created: / 06-09-2011 / 21:48:02 / Jan Kurs <kursjan@fit.cvut.cz>"
+!
+
 testSayHello
     self assert: (self javaTestClass new sayHello = 'hello').
 
@@ -240,6 +255,12 @@
     ^ Java classForName: 'cz.cvut.fit.swing.methodLookup.Object'
 
     "Created: / 05-09-2011 / 20:13:48 / Jan Kurs <kursjan@fit.cvut.cz>"
+!
+
+personManipulatorClass
+    ^ Java classForName: 'cz.cvut.fit.swing.methodLookup.PersonManipulator'
+
+    "Created: / 06-09-2011 / 21:48:16 / Jan Kurs <kursjan@fit.cvut.cz>"
 ! !
 
 !LookupIntegrationTests class methodsFor:'documentation'!
--- a/src/Make.proto	Tue Sep 06 19:50:08 2011 +0000
+++ b/src/Make.proto	Tue Sep 06 20:30:03 2011 +0000
@@ -179,11 +179,13 @@
 $(OUTDIR)MessageDescription.$(O) MessageDescription.$(H): MessageDescription.st $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
 $(OUTDIR)NoOpTypeBox.$(O) NoOpTypeBox.$(H): NoOpTypeBox.st $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
 $(OUTDIR)PPJavaNode.$(O) PPJavaNode.$(H): PPJavaNode.st $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
+$(OUTDIR)PersonSample.$(O) PersonSample.$(H): PersonSample.st $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
 $(OUTDIR)SampleHandler.$(O) SampleHandler.$(H): SampleHandler.st $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
 $(OUTDIR)SelectorParser.$(O) SelectorParser.$(H): SelectorParser.st $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
 $(OUTDIR)Short.$(O) Short.$(H): Short.st $(INCLUDE_TOP)/stx/libbasic/Integer.$(H) $(INCLUDE_TOP)/stx/libbasic/Number.$(H) $(INCLUDE_TOP)/stx/libbasic/ArithmeticValue.$(H) $(INCLUDE_TOP)/stx/libbasic/Magnitude.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
 $(OUTDIR)SmalltalkAppletContext.$(O) SmalltalkAppletContext.$(H): SmalltalkAppletContext.st $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
 $(OUTDIR)SmalltalkAppletStub.$(O) SmalltalkAppletStub.$(H): SmalltalkAppletStub.st $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
+$(OUTDIR)SmalltalkLookup.$(O) SmalltalkLookup.$(H): SmalltalkLookup.st $(INCLUDE_TOP)/stx/libbasic/Lookup.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
 $(OUTDIR)TypeDictionary.$(O) TypeDictionary.$(H): TypeDictionary.st $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
 $(OUTDIR)stx_libjava.$(O) stx_libjava.$(H): stx_libjava.st $(INCLUDE_TOP)/stx/libbasic/LibraryDefinition.$(H) $(INCLUDE_TOP)/stx/libbasic/ProjectDefinition.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
 $(OUTDIR)JavaAnnotationArrayValue.$(O) JavaAnnotationArrayValue.$(H): JavaAnnotationArrayValue.st $(INCLUDE_TOP)/stx/libjava/JavaAnnotationValue.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
--- a/src/Make.spec	Tue Sep 06 19:50:08 2011 +0000
+++ b/src/Make.spec	Tue Sep 06 20:30:03 2011 +0000
@@ -104,11 +104,13 @@
 	MessageDescription \
 	NoOpTypeBox \
 	PPJavaNode \
+	PersonSample \
 	SampleHandler \
 	SelectorParser \
 	Short \
 	SmalltalkAppletContext \
 	SmalltalkAppletStub \
+	SmalltalkLookup \
 	TypeDictionary \
 	stx_libjava \
 	JavaAnnotationArrayValue \
@@ -223,11 +225,13 @@
     $(OUTDIR)MessageDescription.$(O) \
     $(OUTDIR)NoOpTypeBox.$(O) \
     $(OUTDIR)PPJavaNode.$(O) \
+    $(OUTDIR)PersonSample.$(O) \
     $(OUTDIR)SampleHandler.$(O) \
     $(OUTDIR)SelectorParser.$(O) \
     $(OUTDIR)Short.$(O) \
     $(OUTDIR)SmalltalkAppletContext.$(O) \
     $(OUTDIR)SmalltalkAppletStub.$(O) \
+    $(OUTDIR)SmalltalkLookup.$(O) \
     $(OUTDIR)TypeDictionary.$(O) \
     $(OUTDIR)stx_libjava.$(O) \
     $(OUTDIR)JavaAnnotationArrayValue.$(O) \
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/PersonSample.st	Tue Sep 06 20:30:03 2011 +0000
@@ -0,0 +1,147 @@
+"
+ COPYRIGHT (c) 1996-2011 by Claus Gittinger
+ COPYRIGHT (c) 2010-2011 by Jan Vrany, Jan Kurs and Marcel Hlopko
+                            SWING Research Group, Czech Technical University in Prague
+
+ Parts of the code written by Claus Gittinger are under following
+ license:
+
+ 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.
+
+ Parts of the code written at SWING Reasearch Group [1] are MIT licensed:
+
+ Permission is hereby granted, free of charge, to any person
+ obtaining a copy of this software and associated documentation
+ files (the 'Software'), to deal in the Software without
+ restriction, including without limitation the rights to use,
+ copy, modify, merge, publish, distribute, sublicense, and/or sell
+ copies of the Software, and to permit persons to whom the
+ Software is furnished to do so, subject to the following
+ conditions:
+
+ The above copyright notice and this permission notice shall be
+ included in all copies or substantial portions of the Software.
+
+ THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND,
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
+ OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
+ HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+ WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+ FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
+ OTHER DEALINGS IN THE SOFTWARE.
+
+ [1] Code written at SWING Research Group contain a signature
+     of one of the above copright owners.
+"
+"{ Package: 'stx:libjava' }"
+
+Object subclass:#PersonSample
+	instanceVariableNames:'name age'
+	classVariableNames:''
+	poolDictionaries:''
+	category:'Languages-Java-Lookup-Tests'
+!
+
+!PersonSample class methodsFor:'documentation'!
+
+copyright
+"
+ COPYRIGHT (c) 1996-2011 by Claus Gittinger
+ COPYRIGHT (c) 2010-2011 by Jan Vrany, Jan Kurs and Marcel Hlopko
+                            SWING Research Group, Czech Technical University in Prague
+
+ Parts of the code written by Claus Gittinger are under following
+ license:
+
+ 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.
+
+ Parts of the code written at SWING Reasearch Group [1] are MIT licensed:
+
+ Permission is hereby granted, free of charge, to any person
+ obtaining a copy of this software and associated documentation
+ files (the 'Software'), to deal in the Software without
+ restriction, including without limitation the rights to use,
+ copy, modify, merge, publish, distribute, sublicense, and/or sell
+ copies of the Software, and to permit persons to whom the
+ Software is furnished to do so, subject to the following
+ conditions:
+
+ The above copyright notice and this permission notice shall be
+ included in all copies or substantial portions of the Software.
+
+ THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND,
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
+ OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
+ HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+ WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+ FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
+ OTHER DEALINGS IN THE SOFTWARE.
+
+ [1] Code written at SWING Research Group contain a signature
+     of one of the above copright owners.
+
+"
+! !
+
+!PersonSample methodsFor:'* uncommented (%1) *'!
+
+doesNotUnderstand:aMessage
+    [
+        ^ SmalltalkLookup instance 
+            perform: aMessage onReceiver: self from: thisContext sender.
+    ] on: JavaDoesNotUnderstandException do: [:e |
+       ^ super doesNotUnderstand: aMessage.
+    ]
+
+    "Created: / 06-09-2011 / 22:16:26 / Jan Kurs <kursjan@fit.cvut.cz>"
+! !
+
+!PersonSample methodsFor:'Java protocol'!
+
+getAge
+    ^ self age
+
+    "Created: / 06-09-2011 / 22:22:24 / Jan Kurs <kursjan@fit.cvut.cz>"
+!
+
+getName
+    ^ self name
+
+    "Created: / 06-09-2011 / 22:22:16 / Jan Kurs <kursjan@fit.cvut.cz>"
+! !
+
+!PersonSample methodsFor:'accessing'!
+
+age
+    ^ age
+!
+
+age:something
+    age := something.
+!
+
+name
+    ^ name
+!
+
+name:something
+    name := something.
+! !
+
+!PersonSample class methodsFor:'documentation'!
+
+version_SVN
+    ^ '$Id$'
+! !
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/SmalltalkLookup.st	Tue Sep 06 20:30:03 2011 +0000
@@ -0,0 +1,202 @@
+"
+ COPYRIGHT (c) 1996-2011 by Claus Gittinger
+ COPYRIGHT (c) 2010-2011 by Jan Vrany, Jan Kurs and Marcel Hlopko
+                            SWING Research Group, Czech Technical University in Prague
+
+ Parts of the code written by Claus Gittinger are under following
+ license:
+
+ 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.
+
+ Parts of the code written at SWING Reasearch Group [1] are MIT licensed:
+
+ Permission is hereby granted, free of charge, to any person
+ obtaining a copy of this software and associated documentation
+ files (the 'Software'), to deal in the Software without
+ restriction, including without limitation the rights to use,
+ copy, modify, merge, publish, distribute, sublicense, and/or sell
+ copies of the Software, and to permit persons to whom the
+ Software is furnished to do so, subject to the following
+ conditions:
+
+ The above copyright notice and this permission notice shall be
+ included in all copies or substantial portions of the Software.
+
+ THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND,
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
+ OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
+ HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+ WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+ FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
+ OTHER DEALINGS IN THE SOFTWARE.
+
+ [1] Code written at SWING Research Group contain a signature
+     of one of the above copright owners.
+"
+"{ Package: 'stx:libjava' }"
+
+Lookup subclass:#SmalltalkLookup
+	instanceVariableNames:''
+	classVariableNames:'Instance'
+	poolDictionaries:''
+	category:'Languages-Java-Lookup'
+!
+
+!SmalltalkLookup class methodsFor:'documentation'!
+
+copyright
+"
+ COPYRIGHT (c) 1996-2011 by Claus Gittinger
+ COPYRIGHT (c) 2010-2011 by Jan Vrany, Jan Kurs and Marcel Hlopko
+                            SWING Research Group, Czech Technical University in Prague
+
+ Parts of the code written by Claus Gittinger are under following
+ license:
+
+ 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.
+
+ Parts of the code written at SWING Reasearch Group [1] are MIT licensed:
+
+ Permission is hereby granted, free of charge, to any person
+ obtaining a copy of this software and associated documentation
+ files (the 'Software'), to deal in the Software without
+ restriction, including without limitation the rights to use,
+ copy, modify, merge, publish, distribute, sublicense, and/or sell
+ copies of the Software, and to permit persons to whom the
+ Software is furnished to do so, subject to the following
+ conditions:
+
+ The above copyright notice and this permission notice shall be
+ included in all copies or substantial portions of the Software.
+
+ THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND,
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
+ OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
+ HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+ WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+ FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
+ OTHER DEALINGS IN THE SOFTWARE.
+
+ [1] Code written at SWING Research Group contain a signature
+     of one of the above copright owners.
+
+"
+!
+
+documentation
+"
+    I am responsible for translating java-like selectors into the Smalltalk selectors.
+
+    [author:]
+        Jan Kurs <kursjan@fit.cvut.cz>
+
+    [instance variables:]
+
+    [class variables:]
+
+    [see also:]
+
+"
+!
+
+instance
+    Instance ifNil: [
+        Instance := self basicNew initialize
+    ].
+    ^ Instance
+!
+
+new
+    ^ self shouldNeverBeSent.
+! !
+
+!SmalltalkLookup methodsFor:'boxing-unboxing'!
+
+box: sObj toType: type
+    ^ (JavaTypeBox javaTypeAt: type) box: sObj.
+
+    "Created: / 06-09-2011 / 22:12:59 / Jan Kurs <kursjan@fit.cvut.cz>"
+! !
+
+!SmalltalkLookup methodsFor:'initialization'!
+
+initialize
+
+    "Created: / 06-09-2011 / 22:17:57 / Jan Kurs <kursjan@fit.cvut.cz>"
+! !
+
+!SmalltalkLookup methodsFor:'lookup'!
+
+lookupMethodForSelector:selector directedTo:initialSearchClass for:aReceiver withArguments:argArrayOrNil from:sendingContext
+
+    |jm|
+    jm := self descriptorForJavaSelector: selector.
+    (initialSearchClass allSelectors) do: [:s || sm |
+        sm := self descriptorForSmalltalkSelector: s.
+        "find methods with same name and either static or non-static"
+        (sm name = jm name) ifTrue: [ 
+            ^ sm 
+                returnType: jm returnType;
+                yourself.
+        ]                
+    ].
+    ^ JavaDoesNotUnderstandException raiseErrorString: 'Could not find method for selector: ', jm name.
+
+    "Created: / 06-09-2011 / 22:04:04 / Jan Kurs <kursjan@fit.cvut.cz>"
+!
+
+perform: aMessage onReceiver: receiver from: sender
+        | method  selector class args retval|
+        selector := aMessage selector.
+        args := aMessage arguments.
+        class := receiver class.
+
+        method := self lookupMethodForSelector: selector
+                directedTo: class
+                for: receiver
+                withArguments: args
+                from: sender.
+
+        retval := receiver perform: method selector withArguments: args. 
+        ^ self box: retval toType: method returnType.
+
+    "Created: / 06-09-2011 / 22:10:47 / Jan Kurs <kursjan@fit.cvut.cz>"
+! !
+
+!SmalltalkLookup methodsFor:'matching'!
+
+descriptorForJavaSelector:selector
+    ^ MessageDescription new 
+        parserClass: JavaSelectorParser;
+        selector: selector;
+        yourself.
+
+    "Created: / 06-09-2011 / 22:05:37 / Jan Kurs <kursjan@fit.cvut.cz>"
+!
+
+descriptorForSmalltalkSelector:selector
+    ^ MessageDescription new 
+        parserClass: SmalltalkSelectorParser;
+        selector: selector;
+        yourself.
+
+    "Created: / 06-09-2011 / 22:05:23 / Jan Kurs <kursjan@fit.cvut.cz>"
+! !
+
+!SmalltalkLookup class methodsFor:'documentation'!
+
+version_SVN
+    ^ '$Id$'
+! !
--- a/src/abbrev.stc	Tue Sep 06 19:50:08 2011 +0000
+++ b/src/abbrev.stc	Tue Sep 06 20:30:03 2011 +0000
@@ -30,6 +30,7 @@
 JavaExceptionThrowerMock JavaExceptionThrowerMock stx:libjava 'Languages-Java-Tests-RuntimeConstantPool' 0
 JavaField JavaField stx:libjava 'Languages-Java-Reader-Support' 0
 JavaFieldRefTests JavaFieldRefTests stx:libjava 'Languages-Java-Tests-RuntimeConstantPool' 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' 1
 JavaJavadocNode JavaJavadocNode stx:libjava 'Languages-Java-AST' 0
@@ -66,6 +67,7 @@
 JavaStartup JavaStartup stx:libjava 'Languages-Java-Support' 1
 JavaTestCaseProxy JavaTestCaseProxy stx:libjava 'Languages-Java-Tests-Proxies' 3
 JavaTestsLoader JavaTestsLoader stx:libjava 'Languages-Java-Tests' 0
+JavaTestsResource JavaTestsResource stx:libjava 'Languages-Java-Tests' 2
 JavaTopView JavaTopView stx:libjava 'Languages-Java-Views-Support' 2
 JavaTypeBox JavaTypeBox stx:libjava 'Languages-Java-Types' 0
 JavaUTF8Tests JavaUTF8Tests stx:libjava 'Languages-Java-Tests' 1
@@ -79,12 +81,15 @@
 MessageDescription MessageDescription stx:libjava 'Languages-Java-Lookup' 0
 NoOpTypeBox NoOpTypeBox stx:libjava 'Languages-Java-Types' 0
 PPJavaNode PPJavaNode stx:libjava 'Languages-Java-AST' 0
+PersonSample PersonSample stx:libjava 'Languages-Java-Lookup-Tests' 0
 SampleHandler SampleHandler stx:libjava 'Languages-Java-Lookup-Tests' 0
 SelectorParser SelectorParser stx:libjava 'Languages-Java-Lookup' 0
 Short Short stx:libjava 'Magnitude-Numbers' 0
 SmalltalkAppletContext SmalltalkAppletContext stx:libjava 'Languages-Java-Views-Support' 0
 SmalltalkAppletStub SmalltalkAppletStub stx:libjava 'Languages-Java-Views-Support' 0
+SmalltalkLookup SmalltalkLookup stx:libjava 'Languages-Java-Lookup' 0
 SmalltalkSelectorParserTests SmalltalkSelectorParserTests stx:libjava 'Languages-Java-Lookup-Tests' 1
+TestletTestCaseProxy TestletTestCaseProxy stx:libjava 'Languages-Java-Tests-Proxies' 3
 TypeDictionary TypeDictionary stx:libjava 'Languages-Java-Types' 1
 stx_libjava stx_libjava stx:libjava '* Projects & Packages *' 3
 JavaAnnotationArrayValue JavaAnnotationArrayValue stx:libjava 'Languages-Java-Reader-Support' 0
@@ -105,7 +110,6 @@
 JavaFieldAnnotationContainer JavaFieldAnnotationContainer stx:libjava 'Languages-Java-Annotations' 1
 JavaFieldDescriptor JavaFieldDescriptor stx:libjava 'Languages-Java-Support' 0
 JavaFormalParameterNode JavaFormalParameterNode stx:libjava 'Languages-Java-AST' 0
-JavaInitializedResource JavaInitializedResource stx:libjava 'Languages-Java-Tests' 2
 JavaIntegerBox JavaIntegerBox stx:libjava 'Languages-Java-Types' 0
 JavaInvalidRefError JavaInvalidRefError stx:libjava 'Languages-Java-Support' 1
 JavaMethodAnnotationContainer JavaMethodAnnotationContainer stx:libjava 'Languages-Java-Annotations' 1
@@ -118,14 +122,12 @@
 JavaSelectorParser JavaSelectorParser stx:libjava 'Languages-Java-Lookup' 0
 JavaStringBox JavaStringBox stx:libjava 'Languages-Java-Types' 0
 JavaStringRef2 JavaStringRef2 stx:libjava 'Languages-Java-Reader-Support-new' 0
-JavaTestsResource JavaTestsResource stx:libjava 'Languages-Java-Tests' 2
 JavaTypeNode JavaTypeNode stx:libjava 'Languages-Java-AST' 0
 JavaUnhandledExceptionError JavaUnhandledExceptionError stx:libjava 'Languages-Java-Support' 1
 JavaUnresolvedClassConstant JavaUnresolvedClassConstant stx:libjava 'Languages-Java-Reader-Support' 0
 JavaUnresolvedStringConstant JavaUnresolvedStringConstant stx:libjava 'Languages-Java-Reader-Support' 0
 JavadocDeclarationNode JavadocDeclarationNode stx:libjava 'Languages-Java-AST' 0
 SmalltalkSelectorParser SmalltalkSelectorParser stx:libjava 'Languages-Java-Lookup' 0
-TestletTestCaseProxy TestletTestCaseProxy stx:libjava 'Languages-Java-Tests-Proxies' 3
 VoidBox VoidBox stx:libjava 'Languages-Java-Types' 0
 JavaArrayTypeNode JavaArrayTypeNode stx:libjava 'Languages-Java-AST' 0
 JavaBooleanTypeNode JavaBooleanTypeNode stx:libjava 'Languages-Java-AST' 0
--- a/src/bc.mak	Tue Sep 06 19:50:08 2011 +0000
+++ b/src/bc.mak	Tue Sep 06 20:30:03 2011 +0000
@@ -130,11 +130,13 @@
 $(OUTDIR)MessageDescription.$(O) MessageDescription.$(H): MessageDescription.st $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
 $(OUTDIR)NoOpTypeBox.$(O) NoOpTypeBox.$(H): NoOpTypeBox.st $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
 $(OUTDIR)PPJavaNode.$(O) PPJavaNode.$(H): PPJavaNode.st $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
+$(OUTDIR)PersonSample.$(O) PersonSample.$(H): PersonSample.st $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
 $(OUTDIR)SampleHandler.$(O) SampleHandler.$(H): SampleHandler.st $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
 $(OUTDIR)SelectorParser.$(O) SelectorParser.$(H): SelectorParser.st $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
 $(OUTDIR)Short.$(O) Short.$(H): Short.st $(INCLUDE_TOP)\stx\libbasic\Integer.$(H) $(INCLUDE_TOP)\stx\libbasic\Number.$(H) $(INCLUDE_TOP)\stx\libbasic\ArithmeticValue.$(H) $(INCLUDE_TOP)\stx\libbasic\Magnitude.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
 $(OUTDIR)SmalltalkAppletContext.$(O) SmalltalkAppletContext.$(H): SmalltalkAppletContext.st $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
 $(OUTDIR)SmalltalkAppletStub.$(O) SmalltalkAppletStub.$(H): SmalltalkAppletStub.st $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
+$(OUTDIR)SmalltalkLookup.$(O) SmalltalkLookup.$(H): SmalltalkLookup.st $(INCLUDE_TOP)\stx\libbasic\Lookup.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
 $(OUTDIR)TypeDictionary.$(O) TypeDictionary.$(H): TypeDictionary.st $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
 $(OUTDIR)stx_libjava.$(O) stx_libjava.$(H): stx_libjava.st $(INCLUDE_TOP)\stx\libbasic\LibraryDefinition.$(H) $(INCLUDE_TOP)\stx\libbasic\ProjectDefinition.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
 $(OUTDIR)JavaAnnotationArrayValue.$(O) JavaAnnotationArrayValue.$(H): JavaAnnotationArrayValue.st $(INCLUDE_TOP)\stx\libjava\JavaAnnotationValue.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
--- a/src/libInit.cc	Tue Sep 06 19:50:08 2011 +0000
+++ b/src/libInit.cc	Tue Sep 06 20:30:03 2011 +0000
@@ -81,11 +81,13 @@
 _MessageDescription_Init(pass,__pRT__,snd);
 _NoOpTypeBox_Init(pass,__pRT__,snd);
 _PPJavaNode_Init(pass,__pRT__,snd);
+_PersonSample_Init(pass,__pRT__,snd);
 _SampleHandler_Init(pass,__pRT__,snd);
 _SelectorParser_Init(pass,__pRT__,snd);
 _Short_Init(pass,__pRT__,snd);
 _SmalltalkAppletContext_Init(pass,__pRT__,snd);
 _SmalltalkAppletStub_Init(pass,__pRT__,snd);
+_SmalltalkLookup_Init(pass,__pRT__,snd);
 _TypeDictionary_Init(pass,__pRT__,snd);
 _stx_137libjava_Init(pass,__pRT__,snd);
 _JavaAnnotationArrayValue_Init(pass,__pRT__,snd);
--- a/src/libjava.rc	Tue Sep 06 19:50:08 2011 +0000
+++ b/src/libjava.rc	Tue Sep 06 20:30:03 2011 +0000
@@ -23,7 +23,7 @@
       VALUE "LegalCopyright", "Copyright Claus Gittinger 1988-2011\nCopyright eXept Software AG 1998-2011\nCopyright Jan Vrany, Jan Kurs and Marcel Hlopko\b          SWING Research Group, Czech Technical University In Prague\0"
       VALUE "ProductName", "Smalltalk/X\0"
       VALUE "ProductVersion", "6.2.1.1\0"
-      VALUE "ProductDate", "Tue, 06 Sep 2011 19:04:31 GMT\0"
+      VALUE "ProductDate", "Tue, 06 Sep 2011 20:31:02 GMT\0"
     END
 
   END