experiments/ClassReloadingTests.st
author Jan Vrany <jan.vrany@fit.cvut.cz>
Sat, 15 Dec 2012 23:25:19 +0100
branchdevelopment
changeset 1883 b36e52129040
parent 1880 27b932afa4a7
child 1895 2d30e588124c
permissions -rw-r--r--
Initial implementation of JavaCompiler using Oracle javac toolbox. Not yet finished.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
1869
0ae14ac1c9af java compiler (javac wrapper) and basic class reloading tests
hlopkmar
parents:
diff changeset
     1
"
0ae14ac1c9af java compiler (javac wrapper) and basic class reloading tests
hlopkmar
parents:
diff changeset
     2
 Copyright (c) 2010-2011 Jan Vrany, Jan Kurs & Marcel Hlopko,
0ae14ac1c9af java compiler (javac wrapper) and basic class reloading tests
hlopkmar
parents:
diff changeset
     3
                         SWING Research Group, Czech Technical University 
0ae14ac1c9af java compiler (javac wrapper) and basic class reloading tests
hlopkmar
parents:
diff changeset
     4
                         in Prague
0ae14ac1c9af java compiler (javac wrapper) and basic class reloading tests
hlopkmar
parents:
diff changeset
     5
0ae14ac1c9af java compiler (javac wrapper) and basic class reloading tests
hlopkmar
parents:
diff changeset
     6
 Permission is hereby granted, free of charge, to any person
0ae14ac1c9af java compiler (javac wrapper) and basic class reloading tests
hlopkmar
parents:
diff changeset
     7
 obtaining a copy of this software and associated documentation
0ae14ac1c9af java compiler (javac wrapper) and basic class reloading tests
hlopkmar
parents:
diff changeset
     8
 files (the 'Software'), to deal in the Software without
0ae14ac1c9af java compiler (javac wrapper) and basic class reloading tests
hlopkmar
parents:
diff changeset
     9
 restriction, including without limitation the rights to use,
0ae14ac1c9af java compiler (javac wrapper) and basic class reloading tests
hlopkmar
parents:
diff changeset
    10
 copy, modify, merge, publish, distribute, sublicense, and/or sell
0ae14ac1c9af java compiler (javac wrapper) and basic class reloading tests
hlopkmar
parents:
diff changeset
    11
 copies of the Software, and to permit persons to whom the
0ae14ac1c9af java compiler (javac wrapper) and basic class reloading tests
hlopkmar
parents:
diff changeset
    12
 Software is furnished to do so, subject to the following
0ae14ac1c9af java compiler (javac wrapper) and basic class reloading tests
hlopkmar
parents:
diff changeset
    13
 conditions:
0ae14ac1c9af java compiler (javac wrapper) and basic class reloading tests
hlopkmar
parents:
diff changeset
    14
0ae14ac1c9af java compiler (javac wrapper) and basic class reloading tests
hlopkmar
parents:
diff changeset
    15
 The above copyright notice and this permission notice shall be
0ae14ac1c9af java compiler (javac wrapper) and basic class reloading tests
hlopkmar
parents:
diff changeset
    16
 included in all copies or substantial portions of the Software.
0ae14ac1c9af java compiler (javac wrapper) and basic class reloading tests
hlopkmar
parents:
diff changeset
    17
0ae14ac1c9af java compiler (javac wrapper) and basic class reloading tests
hlopkmar
parents:
diff changeset
    18
 THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND,
0ae14ac1c9af java compiler (javac wrapper) and basic class reloading tests
hlopkmar
parents:
diff changeset
    19
 EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
0ae14ac1c9af java compiler (javac wrapper) and basic class reloading tests
hlopkmar
parents:
diff changeset
    20
 OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
0ae14ac1c9af java compiler (javac wrapper) and basic class reloading tests
hlopkmar
parents:
diff changeset
    21
 NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
0ae14ac1c9af java compiler (javac wrapper) and basic class reloading tests
hlopkmar
parents:
diff changeset
    22
 HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
0ae14ac1c9af java compiler (javac wrapper) and basic class reloading tests
hlopkmar
parents:
diff changeset
    23
 WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
0ae14ac1c9af java compiler (javac wrapper) and basic class reloading tests
hlopkmar
parents:
diff changeset
    24
 FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
0ae14ac1c9af java compiler (javac wrapper) and basic class reloading tests
hlopkmar
parents:
diff changeset
    25
 OTHER DEALINGS IN THE SOFTWARE.
0ae14ac1c9af java compiler (javac wrapper) and basic class reloading tests
hlopkmar
parents:
diff changeset
    26
"
0ae14ac1c9af java compiler (javac wrapper) and basic class reloading tests
hlopkmar
parents:
diff changeset
    27
"{ Package: 'stx:libjava/experiments' }"
0ae14ac1c9af java compiler (javac wrapper) and basic class reloading tests
hlopkmar
parents:
diff changeset
    28
0ae14ac1c9af java compiler (javac wrapper) and basic class reloading tests
hlopkmar
parents:
diff changeset
    29
TestCase subclass:#ClassReloadingTests
0ae14ac1c9af java compiler (javac wrapper) and basic class reloading tests
hlopkmar
parents:
diff changeset
    30
	instanceVariableNames:''
0ae14ac1c9af java compiler (javac wrapper) and basic class reloading tests
hlopkmar
parents:
diff changeset
    31
	classVariableNames:''
0ae14ac1c9af java compiler (javac wrapper) and basic class reloading tests
hlopkmar
parents:
diff changeset
    32
	poolDictionaries:''
0ae14ac1c9af java compiler (javac wrapper) and basic class reloading tests
hlopkmar
parents:
diff changeset
    33
	category:'Languages-Java-Tests-ClassReloading'
0ae14ac1c9af java compiler (javac wrapper) and basic class reloading tests
hlopkmar
parents:
diff changeset
    34
!
0ae14ac1c9af java compiler (javac wrapper) and basic class reloading tests
hlopkmar
parents:
diff changeset
    35
0ae14ac1c9af java compiler (javac wrapper) and basic class reloading tests
hlopkmar
parents:
diff changeset
    36
!ClassReloadingTests class methodsFor:'documentation'!
0ae14ac1c9af java compiler (javac wrapper) and basic class reloading tests
hlopkmar
parents:
diff changeset
    37
0ae14ac1c9af java compiler (javac wrapper) and basic class reloading tests
hlopkmar
parents:
diff changeset
    38
copyright
0ae14ac1c9af java compiler (javac wrapper) and basic class reloading tests
hlopkmar
parents:
diff changeset
    39
"
0ae14ac1c9af java compiler (javac wrapper) and basic class reloading tests
hlopkmar
parents:
diff changeset
    40
 Copyright (c) 2010-2011 Jan Vrany, Jan Kurs & Marcel Hlopko,
0ae14ac1c9af java compiler (javac wrapper) and basic class reloading tests
hlopkmar
parents:
diff changeset
    41
                         SWING Research Group, Czech Technical University 
0ae14ac1c9af java compiler (javac wrapper) and basic class reloading tests
hlopkmar
parents:
diff changeset
    42
                         in Prague
0ae14ac1c9af java compiler (javac wrapper) and basic class reloading tests
hlopkmar
parents:
diff changeset
    43
0ae14ac1c9af java compiler (javac wrapper) and basic class reloading tests
hlopkmar
parents:
diff changeset
    44
 Permission is hereby granted, free of charge, to any person
0ae14ac1c9af java compiler (javac wrapper) and basic class reloading tests
hlopkmar
parents:
diff changeset
    45
 obtaining a copy of this software and associated documentation
0ae14ac1c9af java compiler (javac wrapper) and basic class reloading tests
hlopkmar
parents:
diff changeset
    46
 files (the 'Software'), to deal in the Software without
0ae14ac1c9af java compiler (javac wrapper) and basic class reloading tests
hlopkmar
parents:
diff changeset
    47
 restriction, including without limitation the rights to use,
0ae14ac1c9af java compiler (javac wrapper) and basic class reloading tests
hlopkmar
parents:
diff changeset
    48
 copy, modify, merge, publish, distribute, sublicense, and/or sell
0ae14ac1c9af java compiler (javac wrapper) and basic class reloading tests
hlopkmar
parents:
diff changeset
    49
 copies of the Software, and to permit persons to whom the
0ae14ac1c9af java compiler (javac wrapper) and basic class reloading tests
hlopkmar
parents:
diff changeset
    50
 Software is furnished to do so, subject to the following
0ae14ac1c9af java compiler (javac wrapper) and basic class reloading tests
hlopkmar
parents:
diff changeset
    51
 conditions:
0ae14ac1c9af java compiler (javac wrapper) and basic class reloading tests
hlopkmar
parents:
diff changeset
    52
0ae14ac1c9af java compiler (javac wrapper) and basic class reloading tests
hlopkmar
parents:
diff changeset
    53
 The above copyright notice and this permission notice shall be
0ae14ac1c9af java compiler (javac wrapper) and basic class reloading tests
hlopkmar
parents:
diff changeset
    54
 included in all copies or substantial portions of the Software.
0ae14ac1c9af java compiler (javac wrapper) and basic class reloading tests
hlopkmar
parents:
diff changeset
    55
0ae14ac1c9af java compiler (javac wrapper) and basic class reloading tests
hlopkmar
parents:
diff changeset
    56
 THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND,
0ae14ac1c9af java compiler (javac wrapper) and basic class reloading tests
hlopkmar
parents:
diff changeset
    57
 EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
0ae14ac1c9af java compiler (javac wrapper) and basic class reloading tests
hlopkmar
parents:
diff changeset
    58
 OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
0ae14ac1c9af java compiler (javac wrapper) and basic class reloading tests
hlopkmar
parents:
diff changeset
    59
 NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
0ae14ac1c9af java compiler (javac wrapper) and basic class reloading tests
hlopkmar
parents:
diff changeset
    60
 HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
0ae14ac1c9af java compiler (javac wrapper) and basic class reloading tests
hlopkmar
parents:
diff changeset
    61
 WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
0ae14ac1c9af java compiler (javac wrapper) and basic class reloading tests
hlopkmar
parents:
diff changeset
    62
 FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
0ae14ac1c9af java compiler (javac wrapper) and basic class reloading tests
hlopkmar
parents:
diff changeset
    63
 OTHER DEALINGS IN THE SOFTWARE.
0ae14ac1c9af java compiler (javac wrapper) and basic class reloading tests
hlopkmar
parents:
diff changeset
    64
0ae14ac1c9af java compiler (javac wrapper) and basic class reloading tests
hlopkmar
parents:
diff changeset
    65
"
0ae14ac1c9af java compiler (javac wrapper) and basic class reloading tests
hlopkmar
parents:
diff changeset
    66
!
0ae14ac1c9af java compiler (javac wrapper) and basic class reloading tests
hlopkmar
parents:
diff changeset
    67
0ae14ac1c9af java compiler (javac wrapper) and basic class reloading tests
hlopkmar
parents:
diff changeset
    68
history
0ae14ac1c9af java compiler (javac wrapper) and basic class reloading tests
hlopkmar
parents:
diff changeset
    69
0ae14ac1c9af java compiler (javac wrapper) and basic class reloading tests
hlopkmar
parents:
diff changeset
    70
    "Created: #registerChangingClassParent / 08-12-2012 / 18:37:52 / Marcel Hlopko <marcel.hlopko@fit.cvut.cz>"
0ae14ac1c9af java compiler (javac wrapper) and basic class reloading tests
hlopkmar
parents:
diff changeset
    71
! !
0ae14ac1c9af java compiler (javac wrapper) and basic class reloading tests
hlopkmar
parents:
diff changeset
    72
0ae14ac1c9af java compiler (javac wrapper) and basic class reloading tests
hlopkmar
parents:
diff changeset
    73
!ClassReloadingTests methodsFor:'test helpers'!
0ae14ac1c9af java compiler (javac wrapper) and basic class reloading tests
hlopkmar
parents:
diff changeset
    74
0ae14ac1c9af java compiler (javac wrapper) and basic class reloading tests
hlopkmar
parents:
diff changeset
    75
callFooMethodSource
0ae14ac1c9af java compiler (javac wrapper) and basic class reloading tests
hlopkmar
parents:
diff changeset
    76
    ^'
0ae14ac1c9af java compiler (javac wrapper) and basic class reloading tests
hlopkmar
parents:
diff changeset
    77
public int callFoo() {
0ae14ac1c9af java compiler (javac wrapper) and basic class reloading tests
hlopkmar
parents:
diff changeset
    78
    return 2;
0ae14ac1c9af java compiler (javac wrapper) and basic class reloading tests
hlopkmar
parents:
diff changeset
    79
}
0ae14ac1c9af java compiler (javac wrapper) and basic class reloading tests
hlopkmar
parents:
diff changeset
    80
'.
0ae14ac1c9af java compiler (javac wrapper) and basic class reloading tests
hlopkmar
parents:
diff changeset
    81
0ae14ac1c9af java compiler (javac wrapper) and basic class reloading tests
hlopkmar
parents:
diff changeset
    82
    "Created: / 08-12-2012 / 18:13:52 / Marcel Hlopko <marcel.hlopko@fit.cvut.cz>"
0ae14ac1c9af java compiler (javac wrapper) and basic class reloading tests
hlopkmar
parents:
diff changeset
    83
!
0ae14ac1c9af java compiler (javac wrapper) and basic class reloading tests
hlopkmar
parents:
diff changeset
    84
0ae14ac1c9af java compiler (javac wrapper) and basic class reloading tests
hlopkmar
parents:
diff changeset
    85
callerClass
0ae14ac1c9af java compiler (javac wrapper) and basic class reloading tests
hlopkmar
parents:
diff changeset
    86
    | callerClass |
0ae14ac1c9af java compiler (javac wrapper) and basic class reloading tests
hlopkmar
parents:
diff changeset
    87
    callerClass := JavaCompiler 
0ae14ac1c9af java compiler (javac wrapper) and basic class reloading tests
hlopkmar
parents:
diff changeset
    88
            compile: '
0ae14ac1c9af java compiler (javac wrapper) and basic class reloading tests
hlopkmar
parents:
diff changeset
    89
package classReloadingTests;
0ae14ac1c9af java compiler (javac wrapper) and basic class reloading tests
hlopkmar
parents:
diff changeset
    90
public class Caller {
0ae14ac1c9af java compiler (javac wrapper) and basic class reloading tests
hlopkmar
parents:
diff changeset
    91
    public int callFoo(ChangingClass c) {
0ae14ac1c9af java compiler (javac wrapper) and basic class reloading tests
hlopkmar
parents:
diff changeset
    92
        return c.foo();
0ae14ac1c9af java compiler (javac wrapper) and basic class reloading tests
hlopkmar
parents:
diff changeset
    93
    }   
0ae14ac1c9af java compiler (javac wrapper) and basic class reloading tests
hlopkmar
parents:
diff changeset
    94
}
0ae14ac1c9af java compiler (javac wrapper) and basic class reloading tests
hlopkmar
parents:
diff changeset
    95
'.
0ae14ac1c9af java compiler (javac wrapper) and basic class reloading tests
hlopkmar
parents:
diff changeset
    96
    callerClass 
0ae14ac1c9af java compiler (javac wrapper) and basic class reloading tests
hlopkmar
parents:
diff changeset
    97
        ifNil: [ self error: 'callerClass is expected to be not nil in these tests' ].
0ae14ac1c9af java compiler (javac wrapper) and basic class reloading tests
hlopkmar
parents:
diff changeset
    98
    ^ callerClass.
0ae14ac1c9af java compiler (javac wrapper) and basic class reloading tests
hlopkmar
parents:
diff changeset
    99
0ae14ac1c9af java compiler (javac wrapper) and basic class reloading tests
hlopkmar
parents:
diff changeset
   100
    "Created: / 06-12-2012 / 21:41:35 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
0ae14ac1c9af java compiler (javac wrapper) and basic class reloading tests
hlopkmar
parents:
diff changeset
   101
    "Modified: / 08-12-2012 / 18:34:33 / Marcel Hlopko <marcel.hlopko@fit.cvut.cz>"
0ae14ac1c9af java compiler (javac wrapper) and basic class reloading tests
hlopkmar
parents:
diff changeset
   102
!
0ae14ac1c9af java compiler (javac wrapper) and basic class reloading tests
hlopkmar
parents:
diff changeset
   103
0ae14ac1c9af java compiler (javac wrapper) and basic class reloading tests
hlopkmar
parents:
diff changeset
   104
changingClass
0ae14ac1c9af java compiler (javac wrapper) and basic class reloading tests
hlopkmar
parents:
diff changeset
   105
    | changingClass |
0ae14ac1c9af java compiler (javac wrapper) and basic class reloading tests
hlopkmar
parents:
diff changeset
   106
    self registerChangingClassParent.
0ae14ac1c9af java compiler (javac wrapper) and basic class reloading tests
hlopkmar
parents:
diff changeset
   107
    changingClass := JavaCompiler 
0ae14ac1c9af java compiler (javac wrapper) and basic class reloading tests
hlopkmar
parents:
diff changeset
   108
            compile: '
0ae14ac1c9af java compiler (javac wrapper) and basic class reloading tests
hlopkmar
parents:
diff changeset
   109
package classReloadingTests;
0ae14ac1c9af java compiler (javac wrapper) and basic class reloading tests
hlopkmar
parents:
diff changeset
   110
public class ChangingClass extends ChangingClassParent {}
0ae14ac1c9af java compiler (javac wrapper) and basic class reloading tests
hlopkmar
parents:
diff changeset
   111
'.
0ae14ac1c9af java compiler (javac wrapper) and basic class reloading tests
hlopkmar
parents:
diff changeset
   112
    changingClass 
0ae14ac1c9af java compiler (javac wrapper) and basic class reloading tests
hlopkmar
parents:
diff changeset
   113
        ifNil: [ self error: 'changingClass is expected to be not nil in these tests' ].
0ae14ac1c9af java compiler (javac wrapper) and basic class reloading tests
hlopkmar
parents:
diff changeset
   114
    ^ changingClass.
0ae14ac1c9af java compiler (javac wrapper) and basic class reloading tests
hlopkmar
parents:
diff changeset
   115
0ae14ac1c9af java compiler (javac wrapper) and basic class reloading tests
hlopkmar
parents:
diff changeset
   116
    "Created: / 06-12-2012 / 21:41:36 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
0ae14ac1c9af java compiler (javac wrapper) and basic class reloading tests
hlopkmar
parents:
diff changeset
   117
    "Modified: / 08-12-2012 / 18:38:35 / Marcel Hlopko <marcel.hlopko@fit.cvut.cz>"
0ae14ac1c9af java compiler (javac wrapper) and basic class reloading tests
hlopkmar
parents:
diff changeset
   118
!
0ae14ac1c9af java compiler (javac wrapper) and basic class reloading tests
hlopkmar
parents:
diff changeset
   119
0ae14ac1c9af java compiler (javac wrapper) and basic class reloading tests
hlopkmar
parents:
diff changeset
   120
changingClassWithAddedCallFooMethod
0ae14ac1c9af java compiler (javac wrapper) and basic class reloading tests
hlopkmar
parents:
diff changeset
   121
    | changingClass |
0ae14ac1c9af java compiler (javac wrapper) and basic class reloading tests
hlopkmar
parents:
diff changeset
   122
    self registerChangingClassParent.
0ae14ac1c9af java compiler (javac wrapper) and basic class reloading tests
hlopkmar
parents:
diff changeset
   123
    changingClass := JavaCompiler 
0ae14ac1c9af java compiler (javac wrapper) and basic class reloading tests
hlopkmar
parents:
diff changeset
   124
            compile: '
0ae14ac1c9af java compiler (javac wrapper) and basic class reloading tests
hlopkmar
parents:
diff changeset
   125
package classReloadingTests;
0ae14ac1c9af java compiler (javac wrapper) and basic class reloading tests
hlopkmar
parents:
diff changeset
   126
public class ChangingClass extends ChangingClassParent {
0ae14ac1c9af java compiler (javac wrapper) and basic class reloading tests
hlopkmar
parents:
diff changeset
   127
    public int foo() {
0ae14ac1c9af java compiler (javac wrapper) and basic class reloading tests
hlopkmar
parents:
diff changeset
   128
        return 2;
0ae14ac1c9af java compiler (javac wrapper) and basic class reloading tests
hlopkmar
parents:
diff changeset
   129
    }   
0ae14ac1c9af java compiler (javac wrapper) and basic class reloading tests
hlopkmar
parents:
diff changeset
   130
}
0ae14ac1c9af java compiler (javac wrapper) and basic class reloading tests
hlopkmar
parents:
diff changeset
   131
'.
0ae14ac1c9af java compiler (javac wrapper) and basic class reloading tests
hlopkmar
parents:
diff changeset
   132
    changingClass 
0ae14ac1c9af java compiler (javac wrapper) and basic class reloading tests
hlopkmar
parents:
diff changeset
   133
        ifNil: [ self error: 'changingClass is expected to be not nil in these tests' ].
0ae14ac1c9af java compiler (javac wrapper) and basic class reloading tests
hlopkmar
parents:
diff changeset
   134
    ^ changingClass.
0ae14ac1c9af java compiler (javac wrapper) and basic class reloading tests
hlopkmar
parents:
diff changeset
   135
0ae14ac1c9af java compiler (javac wrapper) and basic class reloading tests
hlopkmar
parents:
diff changeset
   136
    "Created: / 06-12-2012 / 21:41:39 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
0ae14ac1c9af java compiler (javac wrapper) and basic class reloading tests
hlopkmar
parents:
diff changeset
   137
    "Modified: / 08-12-2012 / 18:38:53 / Marcel Hlopko <marcel.hlopko@fit.cvut.cz>"
0ae14ac1c9af java compiler (javac wrapper) and basic class reloading tests
hlopkmar
parents:
diff changeset
   138
!
0ae14ac1c9af java compiler (javac wrapper) and basic class reloading tests
hlopkmar
parents:
diff changeset
   139
0ae14ac1c9af java compiler (javac wrapper) and basic class reloading tests
hlopkmar
parents:
diff changeset
   140
changingClassWithCallFooWithDifferentSignature
0ae14ac1c9af java compiler (javac wrapper) and basic class reloading tests
hlopkmar
parents:
diff changeset
   141
    | changingClass |
0ae14ac1c9af java compiler (javac wrapper) and basic class reloading tests
hlopkmar
parents:
diff changeset
   142
    self registerChangingClassParent.
0ae14ac1c9af java compiler (javac wrapper) and basic class reloading tests
hlopkmar
parents:
diff changeset
   143
    changingClass := JavaCompiler 
0ae14ac1c9af java compiler (javac wrapper) and basic class reloading tests
hlopkmar
parents:
diff changeset
   144
            compile: '
0ae14ac1c9af java compiler (javac wrapper) and basic class reloading tests
hlopkmar
parents:
diff changeset
   145
package classReloadingTests;
0ae14ac1c9af java compiler (javac wrapper) and basic class reloading tests
hlopkmar
parents:
diff changeset
   146
public class ChangingClass extends ChangingClassParent {
0ae14ac1c9af java compiler (javac wrapper) and basic class reloading tests
hlopkmar
parents:
diff changeset
   147
    public String foo() {
0ae14ac1c9af java compiler (javac wrapper) and basic class reloading tests
hlopkmar
parents:
diff changeset
   148
        return "different signature";
0ae14ac1c9af java compiler (javac wrapper) and basic class reloading tests
hlopkmar
parents:
diff changeset
   149
    }   
0ae14ac1c9af java compiler (javac wrapper) and basic class reloading tests
hlopkmar
parents:
diff changeset
   150
}
0ae14ac1c9af java compiler (javac wrapper) and basic class reloading tests
hlopkmar
parents:
diff changeset
   151
'.
0ae14ac1c9af java compiler (javac wrapper) and basic class reloading tests
hlopkmar
parents:
diff changeset
   152
    changingClass 
0ae14ac1c9af java compiler (javac wrapper) and basic class reloading tests
hlopkmar
parents:
diff changeset
   153
        ifNil: [ self error: 'changingClass is expected to be not nil in these tests' ].
0ae14ac1c9af java compiler (javac wrapper) and basic class reloading tests
hlopkmar
parents:
diff changeset
   154
    ^ changingClass.
0ae14ac1c9af java compiler (javac wrapper) and basic class reloading tests
hlopkmar
parents:
diff changeset
   155
0ae14ac1c9af java compiler (javac wrapper) and basic class reloading tests
hlopkmar
parents:
diff changeset
   156
    "Created: / 06-12-2012 / 21:50:02 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
0ae14ac1c9af java compiler (javac wrapper) and basic class reloading tests
hlopkmar
parents:
diff changeset
   157
    "Modified: / 08-12-2012 / 18:38:44 / Marcel Hlopko <marcel.hlopko@fit.cvut.cz>"
0ae14ac1c9af java compiler (javac wrapper) and basic class reloading tests
hlopkmar
parents:
diff changeset
   158
!
0ae14ac1c9af java compiler (javac wrapper) and basic class reloading tests
hlopkmar
parents:
diff changeset
   159
0ae14ac1c9af java compiler (javac wrapper) and basic class reloading tests
hlopkmar
parents:
diff changeset
   160
changingClassWithModifiedCallFooMethod
0ae14ac1c9af java compiler (javac wrapper) and basic class reloading tests
hlopkmar
parents:
diff changeset
   161
    | changingClass |
0ae14ac1c9af java compiler (javac wrapper) and basic class reloading tests
hlopkmar
parents:
diff changeset
   162
    self registerChangingClassParent.
0ae14ac1c9af java compiler (javac wrapper) and basic class reloading tests
hlopkmar
parents:
diff changeset
   163
    changingClass := JavaCompiler 
0ae14ac1c9af java compiler (javac wrapper) and basic class reloading tests
hlopkmar
parents:
diff changeset
   164
            compile: '
0ae14ac1c9af java compiler (javac wrapper) and basic class reloading tests
hlopkmar
parents:
diff changeset
   165
package classReloadingTests;
0ae14ac1c9af java compiler (javac wrapper) and basic class reloading tests
hlopkmar
parents:
diff changeset
   166
public class ChangingClass extends ChangingClassParent {
0ae14ac1c9af java compiler (javac wrapper) and basic class reloading tests
hlopkmar
parents:
diff changeset
   167
    public int foo() {
0ae14ac1c9af java compiler (javac wrapper) and basic class reloading tests
hlopkmar
parents:
diff changeset
   168
        return 2;
0ae14ac1c9af java compiler (javac wrapper) and basic class reloading tests
hlopkmar
parents:
diff changeset
   169
    }   
0ae14ac1c9af java compiler (javac wrapper) and basic class reloading tests
hlopkmar
parents:
diff changeset
   170
}
0ae14ac1c9af java compiler (javac wrapper) and basic class reloading tests
hlopkmar
parents:
diff changeset
   171
'.
0ae14ac1c9af java compiler (javac wrapper) and basic class reloading tests
hlopkmar
parents:
diff changeset
   172
    changingClass 
0ae14ac1c9af java compiler (javac wrapper) and basic class reloading tests
hlopkmar
parents:
diff changeset
   173
        ifNil: [ self error: 'changingClass is expected to be not nil in these tests' ].
0ae14ac1c9af java compiler (javac wrapper) and basic class reloading tests
hlopkmar
parents:
diff changeset
   174
    ^ changingClass.
0ae14ac1c9af java compiler (javac wrapper) and basic class reloading tests
hlopkmar
parents:
diff changeset
   175
0ae14ac1c9af java compiler (javac wrapper) and basic class reloading tests
hlopkmar
parents:
diff changeset
   176
    "Created: / 06-12-2012 / 21:49:19 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
0ae14ac1c9af java compiler (javac wrapper) and basic class reloading tests
hlopkmar
parents:
diff changeset
   177
    "Modified: / 08-12-2012 / 18:39:16 / Marcel Hlopko <marcel.hlopko@fit.cvut.cz>"
0ae14ac1c9af java compiler (javac wrapper) and basic class reloading tests
hlopkmar
parents:
diff changeset
   178
!
0ae14ac1c9af java compiler (javac wrapper) and basic class reloading tests
hlopkmar
parents:
diff changeset
   179
0ae14ac1c9af java compiler (javac wrapper) and basic class reloading tests
hlopkmar
parents:
diff changeset
   180
registerChangingClassParent
0ae14ac1c9af java compiler (javac wrapper) and basic class reloading tests
hlopkmar
parents:
diff changeset
   181
    | changingClassParent |
0ae14ac1c9af java compiler (javac wrapper) and basic class reloading tests
hlopkmar
parents:
diff changeset
   182
    changingClassParent := JavaCompiler 
0ae14ac1c9af java compiler (javac wrapper) and basic class reloading tests
hlopkmar
parents:
diff changeset
   183
            compile: '
0ae14ac1c9af java compiler (javac wrapper) and basic class reloading tests
hlopkmar
parents:
diff changeset
   184
package classReloadingTests;
0ae14ac1c9af java compiler (javac wrapper) and basic class reloading tests
hlopkmar
parents:
diff changeset
   185
public class ChangingClassParent {
0ae14ac1c9af java compiler (javac wrapper) and basic class reloading tests
hlopkmar
parents:
diff changeset
   186
    public int foo() {
0ae14ac1c9af java compiler (javac wrapper) and basic class reloading tests
hlopkmar
parents:
diff changeset
   187
        return 1;
0ae14ac1c9af java compiler (javac wrapper) and basic class reloading tests
hlopkmar
parents:
diff changeset
   188
    }   
0ae14ac1c9af java compiler (javac wrapper) and basic class reloading tests
hlopkmar
parents:
diff changeset
   189
}
0ae14ac1c9af java compiler (javac wrapper) and basic class reloading tests
hlopkmar
parents:
diff changeset
   190
'.
0ae14ac1c9af java compiler (javac wrapper) and basic class reloading tests
hlopkmar
parents:
diff changeset
   191
    changingClassParent 
0ae14ac1c9af java compiler (javac wrapper) and basic class reloading tests
hlopkmar
parents:
diff changeset
   192
        ifNil: [
0ae14ac1c9af java compiler (javac wrapper) and basic class reloading tests
hlopkmar
parents:
diff changeset
   193
            self error: 'changingClassParent is expected to be not nil in these tests'
0ae14ac1c9af java compiler (javac wrapper) and basic class reloading tests
hlopkmar
parents:
diff changeset
   194
        ].
0ae14ac1c9af java compiler (javac wrapper) and basic class reloading tests
hlopkmar
parents:
diff changeset
   195
    JavaVM registry registerClass: changingClassParent.
0ae14ac1c9af java compiler (javac wrapper) and basic class reloading tests
hlopkmar
parents:
diff changeset
   196
0ae14ac1c9af java compiler (javac wrapper) and basic class reloading tests
hlopkmar
parents:
diff changeset
   197
    "Created: / 08-12-2012 / 18:37:52 / Marcel Hlopko <marcel.hlopko@fit.cvut.cz>"
0ae14ac1c9af java compiler (javac wrapper) and basic class reloading tests
hlopkmar
parents:
diff changeset
   198
! !
0ae14ac1c9af java compiler (javac wrapper) and basic class reloading tests
hlopkmar
parents:
diff changeset
   199
0ae14ac1c9af java compiler (javac wrapper) and basic class reloading tests
hlopkmar
parents:
diff changeset
   200
!ClassReloadingTests class methodsFor:'documentation'!
0ae14ac1c9af java compiler (javac wrapper) and basic class reloading tests
hlopkmar
parents:
diff changeset
   201
1883
b36e52129040 Initial implementation of JavaCompiler using Oracle javac toolbox. Not yet finished.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1880
diff changeset
   202
version_HG
b36e52129040 Initial implementation of JavaCompiler using Oracle javac toolbox. Not yet finished.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1880
diff changeset
   203
b36e52129040 Initial implementation of JavaCompiler using Oracle javac toolbox. Not yet finished.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1880
diff changeset
   204
    ^ '$Changeset: <not expanded> $'
b36e52129040 Initial implementation of JavaCompiler using Oracle javac toolbox. Not yet finished.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1880
diff changeset
   205
!
b36e52129040 Initial implementation of JavaCompiler using Oracle javac toolbox. Not yet finished.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1880
diff changeset
   206
1869
0ae14ac1c9af java compiler (javac wrapper) and basic class reloading tests
hlopkmar
parents:
diff changeset
   207
version_SVN
1880
27b932afa4a7 Refactored JavaCompiler (part 1)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1869
diff changeset
   208
    ^ '§Id::                                                                                                                        §'
1869
0ae14ac1c9af java compiler (javac wrapper) and basic class reloading tests
hlopkmar
parents:
diff changeset
   209
! !