Skip to main content


Eclipse Community Forums
Forum Search:

Search      Help    Register    Login    Home
Home » Archived » M2M (model-to-model transformation) » [ATL] transformations with multiple input metamodels/libraries failing from Java
[ATL] transformations with multiple input metamodels/libraries failing from Java [message #55205] Mon, 30 July 2007 09:55 Go to next message
Eclipse UserFriend
Originally posted by: r.c.ladan.tue.nl

This is a multi-part message in MIME format.
--------------000108010402050600090402
Content-Type: text/plain; charset=ISO-8859-1; format=flowed
Content-Transfer-Encoding: 7bit

Hi,

I'm working on a tool which uses a modified version of Dennis' command
line ATL launcher (see attachment for the relevant snippet).

The tool correctly executes ATL transformations, except in the case
where there are multiple input metamodels and/or multiple libraries.
In that case the tool correctly invokes the ATL engine, but the engine
itself fails. When I execute the same transformation from Eclipse,
using the same (meta)models, the engine works correctly.

I've attached a log containing the backtrace and the files to which make
up the transformation.

Environment:
* JDK 1.6b2 (!)
* Eclipse 3.3
* EMF 2.3
* ATL 2007-02-16

Any ideas?

Regards,
Rene

--------------000108010402050600090402
Content-Type: text/plain;
name="more_memory-20070730.txt"
Content-Transfer-Encoding: 7bit
Content-Disposition: inline;
filename="more_memory-20070730.txt"

Dumping selection as XMI:
<?xml version="1.0" encoding="ASCII"?>
<meta:MemoryNode xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:meta="meta" name="remember" type="." size="88"/>

Loading input metamodel XML @ org.atl.eclipse.engine.AtlEMFModelHandler@d95bc3 from /Documents and Settings/rladan/workspace/mt-test/transformations/XML.ecore
Referenced extents: []
Using input metamodel XML : MOF
Loading input model IN
Referenced extents: []
Using input model IN : XML
Loading input metamodel meta @ org.atl.eclipse.engine.AtlEMFModelHandler@d95bc3 from /Documents and Settings/rladan/workspace/mt-test/transformations/meta.ecore
Referenced extents: []
Using input metamodel meta : MOF
Loading input model IN
Referenced extents: []
Using input model IN : meta
Creating new model OUT for output
Using output model OUT : meta
Starting model transformation more_memory
****** BEGIN Stack Trace
message: ERROR: could not find operation getAttrVal on Void having supertypes: [OclAny]
A.main() : ??#24 null
local variables = {self=more_memory : ASMModule}
local stack = []
A.__exec__() : ??#8 null
local variables = {e=TransientLink {rule = 'more_memory', sourceElements = {dn = IN!remember}, targetElements = {dn1 = OUT!<notnamedyet>}, variables = {}}, self=more_memory : ASMModule}
local stack = []
A.__applymore_memory(1 : NTransientLink;) : ??#15 11:44-11:79
local variables = {dn1=OUT!<notnamedyet>, dn=IN!remember, link=TransientLink {rule = 'more_memory', sourceElements = {dn = IN!remember}, targetElements = {dn1 = OUT!<notnamedyet>}, variables = {}}, self=more_memory : ASMModule}
local stack = [OUT!<notnamedyet>, OUT!<notnamedyet>, more_memory : ASMModule, 88]
A.getParameter(1 : S) : ??#36 6:9-6:151
local variables = {name='f_memory', self=more_memory : ASMModule}
local stack = []
****** END Stack Trace
Trying to continue execution despite the error.
****** BEGIN Stack Trace
message: ERROR: could not find operation toReal on Integer having supertypes: [Real]
A.main() : ??#24 null
local variables = {self=more_memory : ASMModule}
local stack = []
A.__exec__() : ??#8 null
local variables = {e=TransientLink {rule = 'more_memory', sourceElements = {dn = IN!remember}, targetElements = {dn1 = OUT!<notnamedyet>}, variables = {}}, self=more_memory : ASMModule}
local stack = []
A.__applymore_memory(1 : NTransientLink;) : ??#16 11:44-11:88
local variables = {dn1=OUT!<notnamedyet>, dn=IN!remember, link=TransientLink {rule = 'more_memory', sourceElements = {dn = IN!remember}, targetElements = {dn1 = OUT!<notnamedyet>}, variables = {}}, self=more_memory : ASMModule}
local stack = [OUT!<notnamedyet>, OUT!<notnamedyet>, more_memory : ASMModule]
****** END Stack Trace
Trying to continue execution despite the error.
****** BEGIN Stack Trace
message: ERROR: cannot convert more_memory : ASMModule : class org.atl.engine.vm.nativelib.ASMModule to EMF.
A.main() : ??#24 null
local variables = {self=more_memory : ASMModule}
local stack = []
A.__exec__() : ??#8 null
local variables = {e=TransientLink {rule = 'more_memory', sourceElements = {dn = IN!remember}, targetElements = {dn1 = OUT!<notnamedyet>}, variables = {}}, self=more_memory : ASMModule}
local stack = []
A.__applymore_memory(1 : NTransientLink;) : ??#17 11:34-11:88
local variables = {dn1=OUT!<notnamedyet>, dn=IN!remember, link=TransientLink {rule = 'more_memory', sourceElements = {dn = IN!remember}, targetElements = {dn1 = OUT!<notnamedyet>}, variables = {}}, self=more_memory : ASMModule}
local stack = [OUT!<notnamedyet>]
****** END Stack Trace
Trying to continue execution despite the error.
****** BEGIN Stack Trace
exception:
java.lang.NullPointerException
at org.atl.engine.repositories.emf4atl.ASMEMFModelElement.invok e(ASMEMFModelElement.java:522)
at org.atl.engine.vm.ASMOperation.realExec(ASMOperation.java:21 4)
at org.atl.engine.vm.ASMOperation.exec(ASMOperation.java:155)
at org.atl.engine.vm.nativelib.ASMOclAny.invoke(ASMOclAny.java: 60)
at org.atl.engine.vm.nativelib.ASMOclAny.invoke(ASMOclAny.java: 50)
at org.atl.engine.vm.ASMOperation.realExec(ASMOperation.java:21 4)
at org.atl.engine.vm.ASMOperation.realExec(ASMOperation.java:30 9)
at org.atl.engine.vm.ASMOperation.exec(ASMOperation.java:155)
at org.atl.engine.vm.nativelib.ASMOclAny.invoke(ASMOclAny.java: 60)
at org.atl.engine.vm.nativelib.ASMOclAny.invoke(ASMOclAny.java: 50)
at org.atl.engine.vm.ASMOperation.realExec(ASMOperation.java:21 4)
at org.atl.engine.vm.ASMOperation.exec(ASMOperation.java:155)
at org.atl.engine.vm.ASMInterpreter.<init>(ASMInterpreter.java:276)
at org.atl.eclipse.engine.AtlLauncher.launch(AtlLauncher.java:1 36)
at org.atl.eclipse.engine.AtlLauncher.launch(AtlLauncher.java:9 4)
at org.atl.eclipse.engine.AtlLauncher.launch(AtlLauncher.java:6 8)
at org.atl.eclipse.engine.AtlLauncher.launch(AtlLauncher.java:6 0)
at org.atl.eclipse.engine.AtlLauncher.launch(AtlLauncher.java:5 6)
at meta.presentation.MetaEditor.doATLTransformation(MetaEditor. java:337)
at meta.presentation.MetaEditor.transform(MetaEditor.java:837)
at meta.presentation.MetaEditor.run(MetaEditor.java:898)
at org.eclipse.ui.internal.PluginAction.runWithEvent(PluginActi on.java:256)
at org.eclipse.jface.action.ActionContributionItem.handleWidget Selection(ActionContributionItem.java:545)
at org.eclipse.jface.action.ActionContributionItem.access$2(Act ionContributionItem.java:490)
at org.eclipse.jface.action.ActionContributionItem$5.handleEven t(ActionContributionItem.java:402)
at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java :66)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:938)
at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.ja va:3682)
at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java :3293)
at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.jav a:2389)
at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2353)
at org.eclipse.ui.internal.Workbench.access$4(Workbench.java:22 19)
at org.eclipse.ui.internal.Workbench$4.run(Workbench.java:466)
at org.eclipse.core.databinding.observable.Realm.runWithDefault (Realm.java:289)
at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Work bench.java:461)
at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.j ava:149)
at org.eclipse.ui.internal.ide.application.IDEApplication.start (IDEApplication.java:106)
at org.eclipse.equinox.internal.app.EclipseAppHandle.run(Eclips eAppHandle.java:153)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher .runApplication(EclipseAppLauncher.java:106)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher .start(EclipseAppLauncher.java:76)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseS tarter.java:363)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseS tarter.java:176)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java: 504)
at org.eclipse.equinox.launcher.Main.basicRun(Main.java:443)
at org.eclipse.equinox.launcher.Main.run(Main.java:1169)
at org.eclipse.equinox.launcher.Main.main(Main.java:1144)
A.main() : ??#24 null
local variables = {self=more_memory : ASMModule}
local stack = []
A.__exec__() : ??#8 null
local variables = {e=TransientLink {rule = 'more_memory', sourceElements = {dn = IN!remember}, targetElements = {dn1 = OUT!<notnamedyet>}, variables = {}}, self=more_memory : ASMModule}
local stack = []
A.__applymore_memory(1 : NTransientLink;) : ??#17 11:34-11:88
local variables = {dn1=OUT!<notnamedyet>, dn=IN!remember, link=TransientLink {rule = 'more_memory', sourceElements = {dn = IN!remember}, targetElements = {dn1 = OUT!<notnamedyet>}, variables = {}}, self=more_memory : ASMModule}
local stack = [OUT!<notnamedyet>]
****** END Stack Trace
Trying to continue execution despite the error.
Model transformation done
Dumping l:
meta.impl.MemoryNodeImpl@1c6fed0 (failureRate: 0.0) (name: null, patternable: false) (type: null) (size: 0)
saved resource, opening output file
output file written

--------------000108010402050600090402
Content-Type: application/octet-stream;
name="transformation.zip"
Content-Transfer-Encoding: base64
Content-Disposition: attachment;
filename="transformation.zip"

UEsDBBQAAgAIAF1a8TYatUne2AYAADIrAAAPAAAAbW9yZV9tZW1vcnkuYXNt xVlLc9s2ED6n
M/0PinqI2hnLBAGIoKM0E6fNjNXYbiy3Vw1DQg6nfKgkpUb99QVokmCEB0kp bi6UBHzYXex7
qfnrz3E02tEsD9Nk9Gr0AkytFyOa+GkQJg984Wp5e0YIds/Ai9Hrn7//bu7l 8SjxYvpqbI3Z
72dzf8M/2Gea5IWXFKOdF23ZdpxmdBVT9rEfn6shUZj8les2b+4zL8lDmhTv GWxJi5c6pJ9G
uq2FbiP2wkS390a3cetHv3sZu3yRhf/S4H6/oTroD4lXhDvt9ts0iqhfMK1r JZ/mtLhhvCbL
Hy/+NEi0DONNRE2yMNCbZG9k9GtEY6ZpTmWyMPA7tIlWhdPVKvYK/xPNVquJ gSAH0s/UN6Ny
Gq11e6tVRvM02tHVSgcB+runfnSV/xYmwe2aX/xSS4L099PpAy2/X+6X6Tbz aaVcbsgPX6Jf
dgj2RxLQdZjQgClH68oA9xOtlOvey9jzXZbGj7LxS+spO7odaOl2lvTvLUsg Wme0TZ7QWNIo
1ofFNEz8aMtzFAd+MCHXkVcUNJmYYFphyw/dZiXsPY03WmUMsAyP9UA2z9Kg CJ6H9WHRxF9n
kPrpZr/6he5Cn96kATVFYh2tw6Mhv9zfbSM6JAq4gN5mE+1btWRycNYg68G1 OrkcqqE/J1nM
nobXwYJkgOdIWWahJwsG54o+dKE2cbM6qdtbd6hqwWWo6i3NjBlhMS3SO+pF EyPmpw4aWbpN
jJl27YXRNqN3XqG91IZnmyzxPkZaSGEo1ex34fGEzx0w16PizR3VVkQALiA6 489ZJwQBAwSV
EIwMkBnhEId0UnHcTgghneKaIZBDXMcAsbEZYlsXyDrjT7sTotcL22SMzJBS XP7EnRBkGSCc
kRFil+LaphvVEIO4dsnICIGluNB0oxpiEBeWjIwQdIEYFfbEnZCZiQpnZIRg FkFn/Ek6IWhm
gHBGJgiwLoBzBuwLfZfJR6WOUt+z3HUjWL71dHtXN7qd6+vbd8/fRl6eh+uQ Zi+nXhRdlRCf
5ryjKSu/Nrdel7XAJNblNEmLiaFHh6jX2NK3ArKxqGxYrt/cv3/Ov5k6gMPD XhAclOXFsNMH
xbf/6bLnYgT49wEtDPNBm+VPq3H2+fnjZD9n1oyCauYH4xEvX00b/8UmrDcr O8zTDc08PuRW
ADxueBf0c1Ghm7DY1LU+f/x9frjgM+8ovz2bM914eXxe/dps808jprBX4zqz t9dIs5bQf+qv
wXYjI90G6TPvfVwD1th4BoCTWALbzLO1CJtF5pqPa2JJpxCA+orXEAUaoi1R cDekMet5Y7Y5
y2I02cYfaVbwDqnaV65GKaO187KQL4l1trGjozxKC/4CqvZKZzz6SB/CpFyj ScDTe8NeTWl+
3nin0ldZKh7irK2FmoB7EA5mh45SL6g052qU+yBbXejbFi4Trqsl0EVIAJTs W9RtVRC09qHM
HfUm3vKmtEirxZnw23RjpNQ6pAp/m/SNACX1sOCOQZsoKdiQVxHWGUrQsVX3 harohsIWzIEP
mLZg9pOHlV2HFYRNWDH7VnElNNwzEF3FAdCwQPoDx0YuxF89cmWM3WDEkNW/ Xp0UgEpkl8s5
3zQbzwb6gAov3JJo8Ue7jPtUnYkwgRhovokJwIkqQuCpVKQIBpGnVakS2T2S M+hOzspAQ9CQ
hwcIjtD/LjnWSv50LgcUxQJXLkeMUS/woD4AyMDiAk6tFWwm/2q1wjm6zWt5 DVEZViDV3UcH
UawKIgxURLGqzGBl89ej5WkCBHfPKVgVLxirFmeqRUe1SMzdV66Q79gbun1Z uaeygn1v1QIe
yWpm9WQ1s05mBfqyAiezsvuyOtnxZ7AvKyiPO11Zm60mdBTy/ke0UADUubHV W9YwrIDZMmwm
YHXf33r50MBEPgaohiEZRhTUsAxzFbCZBHMsxRUcGQYUMCLD7Abm1uOHJaNU c5CsDwcpYLI+
HGEEuxbNVlxUGMF2FbNUDXNkGFRcQRiBTXAVTLa8I4wA66IMZVsRSwGTr0CE EWCtECgbgQgj
oFohSHZeAhUw+QpEWAHWCkGyFYiwAqoVgmQ/IjMFTHEFYQVUKwTLViDCCrhW CJYdibgKmHwF
V1gB1wrBshVcYQVSo0SrcmzfB+uuDAspnEPyyvENCSVA0wFT36c80LSWrq0/ cGyj6MKvN/60
3jerXs66IuDWYRLEVAFRtUCuM2y46OgaXTJENuWLyJZsrvR+EFjW+Ii5Clin vW9Xvlm3bPM7
/nbIm4cwYEEzqVZa6K/r1qXarJBSANXb1Layhw6HIpUAq1WUiL7atFIOq2wV DJycc4AihTTk
4cAUAof9QTA/Zw7KPv8DUEsDBBQAAgAIAClU8zbtcfb/fQEAAKoLAAAUAAAA cGFyYW1ldGVy
cy1YTUwuZWNvcmXNlk2LwjAQhu+C/6Hk3k8V3NIqe9iDsMuCXvZW0mSqXZqk pInVf7+prqLg
ZWkx20O/8r7TechM0mR5YJWzB9mUgqco9ALkACeClnybotXm053PZy9uiJaL 8ShZC6GcAyvj
qyEyhvHIMYeJw5vYDKZop1Qd+37btp5gW0/Irf/1sUIXSXMvaScnRRQEoZG9 b8gOGHZL3ijM
CdxGT5EZRw7HDFJUY2muyiSCFp0mIbuyohK4Yz4Qq2NtNG8VMODqznJWP9a/ KiXLXCu4OLoz
cva40uahyEitkf8X/8l5DRB50a898S/up+XOgAl57JN+6E1mtvIndZNRwLQq OfRhsApQ4LLS
EtZY9WIIvMBaHRFs2nNAkKk1kiofEGNii4JDmzFBdQXZ6X0PDI4xq7/hH5AM OC9TWzi57j0h
uXZvQjydoAFptvneFOcwXXFZBhmuqsK5vW28IVmuiwJkHwYlNVhF6FtUmFKg GRfUXneQbKAG
6Ra+c6hHLInf/XSbmx9QSwMEFAACAAgAM1TzNnnynkrxAQAAAggAAAkAAABY TUwuZWNvcmXF
Vctu2zAQvBfoPwi827RcFEgFqUGSuoCBtAniHHplqLVMhCJVPiz377uUJcXK ow1sA75YJjUz
u7O7pNLzTSmjNRgrtMpIPJ6QCBTXuVBFRuaLm9HZ2ecvo5icf/34Id2UIvn1 Yx6FZ8+ZBg6q
KJvgfkZWzlUJpXVdj3VZjLUpKHJ6iB1C6k8NYjqZxAi7XvAVlGwklHVMcehY wLWBAQ+4FJWF
hgzlMghM6SzACGYaRWlDSWa3jD+yAiLFShS4NaIUTqzh/k8FdosM2CvJrBVL gZ4izDBx+Doj
rcQ35ljAk1bkUmsJTBG6H32uHBRg9qUvnMHetOyUDm3+wzoW951+m5dduJ86 x9DswTrDuMuI
Mx46naCE6XjuvGHyOzB8wiuCFw5zfvCu94DNNe5aKNzQJgcDeUaWTFpceyV+ e+iXTaMyQif0
edkOC36lpS/VKcKDyk/lHEOfznf4/W9cqWswl9orRMS7aQym/v1Z3MESwzUX yTaLiuHSvcyj
ixTTmYSygcBNVWkr3GCb8pWQOWo8HV+6e5r2OGE7lYKFr8A0d1MTtDl8hxZ+ zaQ/XuUPtnsP
G/eGU7qH3FO7jlC7F+PSdzvyVdXXZxTvDsz2huRaOSZUyKW9JJ8NUIDRdvyO Vsw7rV+x3tXk
zW9EStsvOf7/C1BLAwQUAAIACABdWvE2i4RU4SYIAACfPQAADgAAAFhNTEhl bHBlcnMuYXNt
7Vptb9s2EP68AfsPXga0KQYnfH9xnRVLMWDN+oKi2LCvTqykBhQps5Ws3a8f qVgSE5JHuk6C
FNsXJRYfnk68u+fuSE1ffDovR1fFcrWoq9HB6CneQ09HRXVSzxfVmb3x6sO7 sVJcj/HT0Yuf
vvt2Oludj6rZeXGwg3bM72+mJxf2j/lbV6tmVjWjq1l5aYb/fPP616K8MLJ3 9sOIs6J5+XFR
zpdFFYO8MVK+/6UszouqeR4D4djAh+hA8delecsiNv5DNWsWV9FhFBs4SbwO iQ3YFY2NHe0d
7B49mxzFxg/3qrrZfTY5jK4Pj428PNpbVCflpbW2fcbL6EPYRI/ZBFN4nJD4 OOUGQEUCwHAc
wJgF8JQEDuvIoipELbAqytOo5QDv/rlplnGrOu4P2tdKWRxfNlH1TIzEn1Kf lK9Wvy2q+btT
8ClYxmWcLpYr62HRydKsrAS8Q06IMAAiYQFExccZNgBG4gDODUCkJAgNqyBR Yjw6/+NslbS3
BYBWONpbLf4pdkHEk7J5/uSseQ6bExl1zSVuEzNIiIUQmhJCWApBCYCgooXI pBCZiKU/ZmXC
0X+v5sXpoirmu+DaxEbaP9Fp0VV4nxEimE4oHdurBCBMWAiTSSlMARCcghgm N6aH+LyHUBRn
jAmWY3tVSQjgQbyF8AnRgC7GP9QkbgDztgnEHHCtw7oui1mV9LDBC+HQi6aw Zhn3LoItR5pr
fMHNICMWwmhSCmMAxPgHDCHW+PZKkxBA3day9qoACMEWEs8MvRQAQlsIBVzI KKrHRAAOYhYk
gbgCXOhV1RRnxTLpQk29RkJUQXRrRA2trW5dQUOu0EkB7KxbV4AgFFk7UyiR 9JC4urS1kL2q
JASQglsIBuxMbSqhDLKzTiGMOW3HsTr8/BaoytdNSVQRWy5QqCaibVFEoaqo ExKvi2hb1lCo
MqJtaWSuQiSliKQq8QLr5rJFm7730aYM63jcXHcpxQok3rjnMOsWDHLiDgF0 MKjtLxDUw6AJ
a6UIlJQicEoVAakiWyESUkVJC1EqCdE0+SDNUtpqDjjG6/rENNQ13Oa/redF tMc3P5bNa1PZ
ReM63tZVc3Bi1Fany/p8VJqpI4jQP5juzHTPYMn+I+i3o6aGH0M4uCx2q2bW JEREIztqWGpp
3V5FEkLSkHiiYmJC0NheWRIS7zN6CIvSCDMZ0XizBkpwM8iQhcQzYg/haYjg SV1AiFAWItNv
BEIUsRAlkhDNkhCM0q8EYWSLkdD6mkFpIRwnISINkSSpi4ScylQcHEwLzELs VQMxoMcc9yXH
dP96z3RaXxTLlhfXO6p4pxfQFJ+aUfP5wt00vJgtDawplqv2t3NjPZ/urKf0 i7t/a44RPS+6
2Zerj6PZ8uxgpzOXe0/096ri7+7fsp7Nr4dlP2zo/fqW6m8tGvteRfdz1dTL 4hqjd3xR2hfV
d+gujvb3TmZluQbi0E0yaHK6vkXBBztzWX/T5I0bL2LM1i3e1HJtdXl+XCyb 2XHZrWhpCHgx
bzdcR8fF2aJqTWLkuMr3IOGBmA+SPUiuQdIHKQ+kfJDuQXoN0h7I5MLbklxT dCjco1CH6iN+
P7Q0ZtHNEl/Nlgt768aSXRWjVVk31s3XXmxirRMvOvHOyvQTUD+BxvVxJ+B+ AgNfIKjrdL+P
1mDsmhz9FQYvHF1EbB3Sg05Ehm4Ojnq6qObnRUAJnRfiFG0f4i6M9rklO+4p yYh7Ongri8Y9
ZZ4k7oMGmlHRuKfCi3uHNHuU9EQ5S9yjlB83Ph1R7aPUvdBDz1FiU3pQm9KD 2pIeGHpQetg8
1lkokzJyI2YXt0U6SLpxtDB/mf1cwwYfx50tfJDwJPnOy6QH8oOTqYzgZL6D b5/+IHfdNJlt
m8v4V+Ss2ZlomM2xlzw4yStM+aDNWW3a9uubLJDZstOyoxffOIa4yIghLjNi iKuMGOI6AyRQ
RgwJ7IH8BCdIRvUraEb1K4YgwT2n++EvuKdVCOUv+rCxuH2CE9LL/a4SeQmO bprg6JacIdQj
5wyh75gzJMqsfCWGO9eBSRyzPTSTSJLBJJJmMIlkGSQheQ5IZDCJlBlMIlUG k0idUU8rv0X2
+2g1sBvGgR62gxGfbgKoQHizu6Mb5bcam7fbbFO6YVvSjeL/NbpJlCjDXCUe V42iZAazKJXB
LCqn/NAoB4QzmEWTDGbRNINZNMuoUTTPqlG0yKlRtLzXGiVEGo+/RtHq/z06 sFLR+vHv0W2w
DY9Qzj48yuECjEjGjhxGNKOEwIjl7MnZY7SMTTmMRHxX7rHst8lNQ11uGeoY ybuKdYzUPUX7
4zuBezgqwEjfxX79Zi9KNz5+dBs2lPlmbiw/AMth/7xM+CyBqYcKnCTi0D4J CuB4oMEJcKtz
yIlRvMXBOLDnoQOwoUq0tHRd3AUo0TnsJJ08ElDPOe8ccAH1nBPP4bkB+id+ Ez18lHanVKyh
k4zQBNKZyQnQPPJ2k3YWebuv/GXkbbQIkTcevhC6TcSbNm9DrDt2BPsv7FRa CYkyV6IKcCwm
Ovc5Ic0xDdIUxaFHUZLAfsGLphVw97toUC12vyvgKsCDCoiNu1xMc9pcHDpC DaByGl3Mcjba
McvZacfM73UDSYRllbeMZXxqgp2TPQ1kGpZ1fo1Z1gE2ds73MAXyFvO3AkNp iw8WsBnR+/Sk
x+EALrC+nARwgTTNfTvggCH4YAjS+1FgjTkPpInAIjunTQMusMrOgdOAC6yy c+Y06BdaZu05
ZwjmHDyRrsYhgVUW/vdLwwes93KA64rPyIjT/dnq3Pz9F1BLAwQUAAIACABd WvE2UTke5bsE
AACfGQAAFQAAAGxpYlRyYW5zZm9ybWF0aW9uLmFzbbWYX2/bNhDAnzdg30Hz HtI+OBb/iJQ8
Z0XSrUCNBhuQYdirYtOuMFnKJNnt9ulL2hKl5HiUu2QvEkz+7nTHO95dsnjz eZcHB1XVWVkE
V8EFuQwvAlWsynVWbM3C+7tfp3EcJVNyEbz56btvF2m9C4p0p64m4UT//max ejAv/S6LukmL
Jjik+V5v59n971Va1Juy2qWN1j+ZucGtan5LK62yURXGXGMbBNu4QzfU33vt ocL2fyi0tQd0
+5dc7VTRYNt/3n7Ath46J2uMWF6mef7+uLZS9buq3L1avp4vMZxiGyY+Xitw A668X7y5LMrm
1ev5DWoSGo+3y8usWOV7k1jmG2+XuBE6I66bpvojzb3WMIar2GRVbSxFhY8v bFPMk6mY0xDf
Z7EGotCvICL4vuAaENEIID1fkEwDcTiiIR6xMfbYmBgFicdGEkpNEMJGdBDC PUrIUQkdM8RP
HAE6AjCPBsLNeZKxmBI8qGg61SrfYHtpfVOWuUrR8hjiSd6UH8pPqvKleVPh WZ7MIz7Vj3gE
EB5AEg1IOaIBB1bZz2qTFWqNAbe6ZKbf36q6TrfqR7Qwof0BtX2jy+v1fe2p 5USgp1reeUKK
J/sqw4NZZ/8qXyQJeg+JxLWe6jWulOpbM9VP/G6RSBfCqXmOI4zicZjTeGqe ySjCBN5e5oxN
zZOPI3IU4T4tXB6ReFwLipDEIOYpfU5HU0rnLMTT0CDmmXgCoIsoZXO8AhK9 SabkLARvrHpT
f8iPUF0nKZ/jtwAdP1Yf1eovM/acgMXsNFsuygdVHUfIdvIkEyvfqM9N0Pzz MByH+kHr+Huw
0MqzSStiTZw9kdGq16qT3tcfg7TaXk26GzhcE3atUJ9mLyEiHSKxXdPFcr1T kEgssdJD5GmN
hHYxa8wRWrm6KSvVQsRCeZmuwaIexto16jDMtv5H3+Wuxf4osk27JPyfHgj3 h6KK9RNn/rtv
Az+o66uxQ/xZDicv4nCP0dDhCyU+X/St6nJ7kevOW+x396pq0vu8S/i8UEG2 1nroJLhX26ww
Kav/KlwP89BCzEJJCyUQ4kDTIDctFVlKp1WLMYgJB8YhJnss6rAIYrFDm4BY YrGOGhxzR+ki
3lHG5RMGTdNjqMU60yg0jVGHNmga6yNgfD5hEmLcoQ3Gk/VBCFuKwRgwASmH n30IWOcnc/gZ
Q2V2BJi5clTfHp3Zh7TKzNKj3D2ooM7LxrSDrtr3odO3vHV8kH1eCdpFm1GH RNhJ8BB3YShA
OgFCvT473VvMbCN0tkXu7osc6YvepteXJ+6qjJw56g7nvtJ4ft3hMAVhseAw A+F95H0C2shD
yJF+z84+b2Y8N87JS80/0aB9PGF0V+ogcs6U5OxnXd+LqLeR2hEjYlCUnykK u20kzhSVjryN
4kcZnvl6dW/itmzKVj55JN9AQoRjBBFffWy9VYJ89cUT9IyLJ9gZd0pwAMEm Ivp73nUH2ByE
ABBsgaK/5zE6qYgYQHBSEQmAHJOK7C+1uScnDJYfSaAyeFayP3XC8XlGMnAQ Lqo/eCLwcUZG
ID4uajBpWQfgwUrpwODRyhhi1HG2CUjC/h+x/0s9dg4DtlPHZwrY6SEmXgfO KPmLWVrv9PsL
UEsDBBQAAgAIANOB+zZ9pPIWnAcAANVVAAAKAAAAbWV0YS5lY29yZe1c3W/b NhB/H7D/wfB7
qyTDgC5IViRNOgRr1qLOw15p6SxzkUiVpJx6f/2oD8uiKNmSSFlKsZemlnjk j/fFuxPJq/ff
w2C2AcYxJdfz87dn8xkQl3qY+Nfzh8XnN+/e/frbm/P5+99//unqe4gv/358 mCV/C5qLhEb2
QvilfH49XwsRXTrOy8vLWxr6bynzHUlTNOFqk5df0hYXZ2fnstmnhbuGEL3B hAtEXNhRgUsZ
KHTgBjjikBJDuEo6uHDuk2ZziXQ2u0pJLu+/IPcZ+TAjKJQdhCBQ9j5p8SFA nOMVljOZSVyX
YhvJNjlh+nKe0z1KukfqQbAjTsgXgsWuiBkKPgKSf6Gml6+wAgbpTLKelrBG G0xjdh9ACETI
ISjzZBvver5CAZcN4ygCdktjIh9Jzs/gKe3ROXNuK8TzmUuJQJgkP67nEo8k h89RRDkW9STO
ErKJOKYz8SAK6Dbps89U7qrULeai0TierclwFwhimPaZykKlbTGRCoXDXVvT KIh6TaRK3WYq
VRqHC3UyV07Z0HoYn671aCknitwdpI5cuxGC4WUsCq4l/9bwieBvMRQ/A/pS sK3EtfOEA9JZ
mstuZ5gakIaRz5y9V6oIpXjh6O7GmljSHw+Fo4ZFLPUqwcbrfZWplKS8Kesv pltKA0DEXE4u
dBBRxjHjMcMuZvwInMslT1eK9LHjYns6sIiXdxj5DIUnUIBnTLzxzRQTAqyT Vy3x6Lg7LRo7
VE6dmePNutHw1uNrBJPNeiQ9Psq1nWpzz55q761oaL32AHkBJgZL0AMR4PeQ jwYleXtyE9NR
0AUEq9O7eg3IitHwZsnTmGP8dQdro5Rt50Jbdkprs2ItyksntBB1esb+JbRn uDWZheV4cYVw
IJt+RcLAWO5ovAzARho2QNhYk9sNIJ8PVK4qrsCUaCLSvK4uVVMpBmhZx7ZT xxOex0UH4e35
8JeUVHOGnLyVq7ZP7YDkzB0KpAxQVJTmmQkNQylGFyWq9SldWZvVqaSEphq1 RMR7wZ5Y21vJ
LVpbJorT29ko2bWGIkJCxsEEJT53/LW80PleFbOy32wyrX0bJzVeC3nPCREn PtGiCWywC7kn
alT39P2rjJ/1SJGGkXzYRVTSZUaUtCv5FW1lmLBJ2WYBcTomeEl3HevIe+G2 KCDvGjsRYjuh
G6Mv9XUgDlbUsAlWhRHWbOALo65MaClrMoMCm3nOBFLZibud0CL4CCFl28Gn zvG/MKFZS5kn
udXw00ZhFBhmQ9YnX3JoA/v8mAO/Jy7bRtn6NnpwsfPKXeL1Vq4pW1XsFY+r 381+hM86Ggrs
jY9hDdhfiwnUFy1nR71xfJ8Ahu3pMdR89h6geKR9S7fuMXSfXvUlpoyRsvIl hzuFok8ZTYs4
NG9ZcMpckDneT5g898Gc0LXHnbS2iJ10jfl3wm4Z9ZebW4QNnt8N9r3X6mNW 0kyHaR4NUiaO
l38M7WjYhNia/2hXCrPNC8wXAjExge9amH/EBPP1BKA01ypOHafx23i1AjYB nixTIAuZTf55
uxUTKCgV3qh9nFBaqmudsUOUAodBWTKKu+1yk2nxBsuxM4d41B2Xm6egrVR/ u4L+Ct9izFqD
LjdXQRv70M8SIsoruacJwsyCmuYIJu/+CTEfhIUqoKJXrQ1FVccDukd3jLcY UGchydByHMJ9
ZNGXedycCX8AcVkCyGnMOu04VD3FAbegAjRWJdXoXqFGKd7GVkK26Cq+Ioms zxgHAfnU1QjK
a4ACs3hRD9SWkg0fq8vOMfWwO4Fo8B8shElYaitApqsVBzE+DvPtktb2FKRK Mj6OEJMbxvAG
BUlhkMm/E+ANAxc88G63T4g/TwEPpgyL7Y+ZTBXlSud1xNz5smjzU2c5Kqss DulTG1XKHiKr
+6imFCTzBHascmRN7VFYSohKCUsHWKXY4miauw83lOTLmlpVYunXpFa7GsOE 9IpbNvqFXOqw
C81H0BRm2SnK2YsHzaevn9Y0+4Bec5p0iK+D+hHVAVjSZWu5zkhjxnXbLr0f o9aslbf6dmmD
Yxuddp53QlndeW4uWpxsMuon1hKV028LNRAv29LWZh/5LBm8CrfPwH8Aketb gP9tqrfaGOSG
c+riphHqeGiqd2g/4n3dic6yBl4cOOR0U+lHVUj1rVMadAh/0/KLoqmnmege Jy6zTqDT2Pzc
Z2t9/brR5OBKG9X5WFvr+yO2urU+/9Gs51ZCr5vcrCawtxKl2LpIqjSbo/lM 0dZ5tnRvAIh1
bYXqwKHrjKLFmeukoS2g0bN/aO98fouP9sEle2wLBIJOgq0sP8elq65IKmhj Uyzp2Q+67Gjy
yjjY9TKOutPQTm7XFk8cZGb0vyg6iyL3WfZqg4XvsLpKmV8MUgA7vgcl93On uhLkiLu1dBlI
g84cOKSWERw/oJbqUbKk2POu1Vxj2IhHhjuE41HundCwbGgg5z3GsVl9s+Aa ER/GOcOr3x9Q
jDCBwwQEbbA/EcZM4xKZvRuZwDmLcvWh/SKplmaaYkmnUk+ZVFh1sNwvHymX dB64uPMLwyEW
eJOOylte4XmHBHpKlbEo1yg1yW7UlQtbOlJrBxy7kavGWcO4Kye/nFX+/z9Q SwMEFAACAAgA
TnKjNs+hyICqAQAALQYAAA4AAABYTUxIZWxwZXJzLmF0bLWUTU/DMAyGz+2v MKe2Qkyc+ZgE
CAnEgAMCcQ2Nu0XKEkjcCRA/HqcfY6220SFxS2K/eR/HSbR6ccJ9wPPt5Ar1 Kzp/HMezagS5
NYTvFGJ7lxrnaAgkFkcwRbqYKS0dmtTAETyQU2aahRG+lWhyTIPmzkrM4DSO POpilDeKgzFP
MacU4QtwZMQc4RRMNsz3jMht8wxx9VLSinGHNuvZ21xf+xtl5H3R03NmoZyn dAjZTPg1ZOfW
ahRmlaTOChTqE9MMTsZwOLzyJ6H7xVej4KCRc3mlUwWfbM8ZlIkjVYCsS380 vL8yKJmFZsix
6D7Xy9U4Qu2RF+VoIXTJIzRSFcOIm/LXg6+cTSBfrNTSQa6US+rFbtQL3iwh V2KyE/g1h6bo
1oM3wX8GH5FtjNJsJ/Yw9+cfd/ystr2TRvbHV9Kqs52ZfA3VojR0v+Nt+D02 gnXyWKVMrkvJ
9vWPs4k8fFlL7InNBSlr0u5D425WSJ6Eowm3bWNrk2TZ0FbEndwqiZJq22Al CDQHIYH9viHZ
GifcjdYhSgpn5wMkHEuAbC+zBetuHe7dz/X7BlBLAwQUAAIACABNb8w2PuId aKYBAADuAgAA
FQAAAGxpYlRyYW5zZm9ybWF0aW9uLmF0bGWST2/bMAzFz/anYLGDbWBRgO3W oBuyP0UDpNiA
tsNuhiLTsRBZMkRm6YZ9+FFxnDbYibT0M997hJzdRB1/g7Obx6g9tSH2mm3w i3xPSPDzfn2H
bsBIizyfzaCNoYeOebiezw92ZxUaZwdCFeJ2bn2Dz2rohvnycV3fhQMHeiOl bkK9qmVejc+M
0deDjrpHaam2vk4wX4iTen+bd0ddaLCFa9gif59+Kr1UOXvgaP22Ondwk2fi 9+qrwx49K+3c
yhNrb5BuxXdZvOgW1ewDoUPDJcJfQHWceQMj8t+tyC+Z4w/tyiKRRSVsagRs bSQuqwvml3b7
BJ2WtvcmxYLeEiWj1oOEnn/7vIaPU04TPMt6pixjbE2fQnCofZlinnqRLsVd qzisw0H2kcwU
HCfFi8UZ+wVb67Epe/mS8PrqHon0Ft+C6dDs0mZeZl/I5JltX0Hcoc+zzAeG XqWHsNyQ7DnP
0BHKhcCvzyc+S86knqgR4/AgCc7IxJyhrFfGKrJ/8JjuXSZrDMat6Ene2Jin Gq1BE5B8wXAI
cQcdxnGOb2ybn+uxwOIfUEsDBBQAAgAIAIFyzDZh6PANNwEAAGcCAAAPAAAA bW9yZV9tZW1v
cnkuYXRsjZE9T8MwEIbnRMp/OKYmqIkKAwMwMLAg0YKiIrFVbnwBS/6I7Aui IP47tpPQ8jGw
xOf3fe27xynLK0ayMaoTEi34+nSxOMtSZXgvEZSxuFHol91FljYWGSHcPazh HBQSg9YaBTer
cTuHjlnmK7TOS4/LW3+od+hAiu3aMu1aYxUjYbQ3stT+aAH4Sqi5g8Z0u801 vogGV4YjvGdp
Elr5JeF67Ha0jIdCwOtkBvPkt5sHJ3HiDeGyhJzrKtbHQM/CLSNo9YR0P82e z9pxoFlRkamR
ybwoKmt6zfMiXOY/H1CWh7MHHrZ1ZFlDEMH+B7EP/AWxd/MkiRgtE7K3WIcf 4Wk8zIEyjxHt
MUYvlIPYMfJomm3l5B0oQ4R23eSFchAbo4kJjTwM4Ub7uzgFVVdj+5WIu+mx PgFQSwECFAAU
AAIACABdWvE2GrVJ3tgGAAAyKwAADwAAAAAAAAABACAAAAAAAAAAbW9yZV9t ZW1vcnkuYXNt
UEsBAhQAFAACAAgAKVTzNu1x9v99AQAAqgsAABQAAAAAAAAAAQAgAAAABQcA AHBhcmFtZXRl
cnMtWE1MLmVjb3JlUEsBAhQAFAACAAgAM1TzNnnynkrxAQAAAggAAAkAAAAA AAAAAQAgAAAA
tAgAAFhNTC5lY29yZVBLAQIUABQAAgAIAF1a8TaLhFThJggAAJ89AAAOAAAA AAAAAAEAIAAA
AMwKAABYTUxIZWxwZXJzLmFzbVBLAQIUABQAAgAIAF1a8TZROR7luwQAAJ8Z AAAVAAAAAAAA
AAEAIAAAAB4TAABsaWJUcmFuc2Zvcm1hdGlvbi5hc21QSwECFAAUAAIACADT gfs2faTyFpwH
AADVVQAACgAAAAAAAAABACAAAAAMGAAAbWV0YS5lY29yZVBLAQIUABQAAgAI AE5yozbPociA
qgEAAC0GAAAOAAAAAAAAAAEAIAAAANAfAABYTUxIZWxwZXJzLmF0bFBLAQIU ABQAAgAIAE1v
zDY+4h1opgEAAO4CAAAVAAAAAAAAAAEAIAAAAKYhAABsaWJUcmFuc2Zvcm1h dGlvbi5hdGxQ
SwECFAAUAAIACACBcsw2YejwDTcBAABnAgAADwAAAAAAAAABACAAAAB/IwAA bW9yZV9tZW1v
cnkuYXRsUEsFBgAAAAAJAAkAKQIAAOMkAAAAAA==
--------------000108010402050600090402
Content-Type: text/plain;
name="transform.java"
Content-Transfer-Encoding: base64
Content-Disposition: inline;
filename="transform.java"

ICAgIFN0cmluZyB1c2VQYXRoID0gIi9Eb2N1bWVudHMgYW5kIFNldHRpbmdz L3JsYWRhbi93
b3Jrc3BhY2UvbXQtdGVzdC90cmFuc2Zvcm1hdGlvbnMvIjsgLy8kTk9OLU5M Uy0xJA0KCQ0K
ICAgIHB1YmxpYyBIYXNoTWFwPFN0cmluZywgQVNNTW9kZWw+IG1vZGVscyA9 IG5ldyBIYXNo
TWFwPFN0cmluZywgQVNNTW9kZWw+KCk7DQogICAgcHVibGljIEhhc2hNYXA8 U3RyaW5nLCBT
dHJpbmc+IGhhbmRsZXJzID0gbmV3IEhhc2hNYXA8U3RyaW5nLCBTdHJpbmc+ KCk7ICANCiAg
ICBBU01Nb2RlbCBtZXRhTW9kZWw7DQogICAgQXRsTW9kZWxIYW5kbGVyIGFt aDsNCiAgDQog
ICAgLyoqDQogICAgICogTG9hZHMgYSBtb2RlbCB2aWEgSW5wdXRTdHJlYW0u DQogICAgICog
QHBhcmFtIGFtaCBUaGUgbW9kZWwgaGFuZGxlciB0byB1c2UuDQogICAgICog QHBhcmFtIG1v
ZGVsSWQgVGhlIEFUTCBtb2RlbCBJRC4NCiAgICAgKiBAcGFyYW0gbWV0YU1v ZGVsIFRoZSBB
VEwgbWV0YS1tb2RlbC4NCiAgICAgKiBAcGFyYW0gaW5Nb2RlbCBUaGUgaW5w dXQgbW9kZWwu
DQogICAgICogQHJldHVybiBUaGUgbG9hZGVkIEFUTCBtb2RlbC4NCiAgICAg KiBAdGhyb3dz
IE5vU3VjaE1ldGhvZEV4Y2VwdGlvbiwgSWxsZWdhbEFjY2Vzc0V4Y2VwdGlv biwgSW52b2Nh
dGlvblRhcmdldEV4Y2VwdGlvbg0KICAgICAqLw0KICAgIHByaXZhdGUgc3Rh dGljIEFTTU1v
ZGVsIGxvYWRNb2RlbChBdGxNb2RlbEhhbmRsZXIgYW1oLCBTdHJpbmcgbW9k ZWxJZCwgQVNN
TW9kZWwgbWV0YU1vZGVsLCBJbnB1dFN0cmVhbSBpbk1vZGVsKSB0aHJvd3Mg Tm9TdWNoTWV0
aG9kRXhjZXB0aW9uLCBJbGxlZ2FsQWNjZXNzRXhjZXB0aW9uLCBJbnZvY2F0 aW9uVGFyZ2V0
RXhjZXB0aW9uIHsNCiAgICAgICAgQVNNTW9kZWwgbW9kZWw7ICAgICAgICAN CiAgICAgICAg
bW9kZWwgPSAoKEF0bEVNRk1vZGVsSGFuZGxlcilhbWgpLmxvYWRNb2RlbCht b2RlbElkLCBt
ZXRhTW9kZWwsIGluTW9kZWwpOw0KICAgICAgICBNZXRob2QgZ2V0UmVmZXJl bmNlZEV4dGVu
dHMgPSBtb2RlbC5nZXRDbGFzcygpLmdldE1ldGhvZCgiZ2V0UmVmZXJlbmNl ZEV4dGVudHMi
LCAoQ2xhc3M8Pz5bXSludWxsKTsgLy8kTk9OLU5MUy0xJA0KICAgICAgICBT eXN0ZW0ub3V0
LnByaW50bG4oIlJlZmVyZW5jZWQgZXh0ZW50czogIiArIGdldFJlZmVyZW5j ZWRFeHRlbnRz
Lmludm9rZShtb2RlbCwgKE9iamVjdFtdKW51bGwpKTsgLy8kTk9OLU5MUy0x JA0KICAgICAg
ICByZXR1cm4gbW9kZWw7DQogICAgfQ0KDQogICAgLyoqDQogICAgICogQWRk cyBhIG1ldGFt
b2RlbCB0byB0aGUgaW50ZXJuYWwgbGlzdA0KICAgICAqIA0KICAgICAqIEBw YXJhbSBtZXRh
aWQgSUQgb2YgdGhlIG1ldGFtb2RlbCAoZWl0aGVyICJYTUwiIG9yICJtZXRh IikNCiAgICAg
KiBAcGFyYW0gbWV0YXBhdGggZmlsZSBuYW1lIG9mIDxiPm1ldGFpZDwvYj4N CiAgICAgKiBA
dGhyb3dzIEZpbGVOb3RGb3VuZEV4Y2VwdGlvbiBpZiA8Yj5tZXRhcGF0aDwv Yj4gaXMgbm90
IGZvdW5kDQogICAgICogQHRocm93cyBOb1N1Y2hNZXRob2RFeGNlcHRpb24s IElsbGVnYWxB
Y2Nlc3NFeGNlcHRpb24sIEludm9jYXRpb25UYXJnZXRFeGNlcHRpb24NCiAg ICAgKi8NCiAg
ICBwdWJsaWMgdm9pZCBhZGRNZXRhTW9kZWwoU3RyaW5nIG1ldGFpZCwgU3Ry aW5nIG1ldGFw
YXRoKSB0aHJvd3MgRmlsZU5vdEZvdW5kRXhjZXB0aW9uLCBOb1N1Y2hNZXRo b2RFeGNlcHRp
b24sIElsbGVnYWxBY2Nlc3NFeGNlcHRpb24sIEludm9jYXRpb25UYXJnZXRF eGNlcHRpb24g
ew0KICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIkxvYWRpbmcgaW5wdXQg bWV0YW1vZGVs
ICIgKyBtZXRhaWQgKyAiIEAgIiArIHRoaXMuYW1oICsgIiBmcm9tICIgKyBt ZXRhcGF0aCk7
ICAvLyROT04tTkxTLTEkLy8kTk9OLU5MUy0yJCAvLyROT04tTkxTLTMkDQog ICAgICAgIHRo
aXMubWV0YU1vZGVsID0gbG9hZE1vZGVsKHRoaXMuYW1oLCBtZXRhaWQsIHRo aXMuYW1oLmdl
dE1vZigpLCBuZXcgRmlsZUlucHV0U3RyZWFtKG1ldGFwYXRoKSk7DQogICAg ICAgIHRoaXMu
bWV0YU1vZGVsLnNldElzVGFyZ2V0KGZhbHNlKTsNCiAgICAgICAgdGhpcy5t b2RlbHMucHV0
KG1ldGFpZCwgdGhpcy5tZXRhTW9kZWwpOw0KICAgIAlTeXN0ZW0ub3V0LnBy aW50bG4oIlVz
aW5nIGlucHV0IG1ldGFtb2RlbCAiICsgdGhpcy5tZXRhTW9kZWwpOyAvLyRO T04tTkxTLTEk
DQogICAgfQ0KICAgIA0KICAgIC8qKg0KICAgICAqIEFkZCB0aGUgaW5wdXQg bW9kZWwgdG8g
dGhlIGludGVybmFsIGxpc3QNCiAgICAgKiBAdGhyb3dzIE5vU3VjaE1ldGhv ZEV4Y2VwdGlv
biwgSWxsZWdhbEFjY2Vzc0V4Y2VwdGlvbiwgSW52b2NhdGlvblRhcmdldEV4 Y2VwdGlvbg0K
ICAgICAqLw0KICAgIHB1YmxpYyB2b2lkIGFkZElucHV0TW9kZWwoQnl0ZUFy cmF5SW5wdXRT
dHJlYW0gaW5Nb2RlbCkgdGhyb3dzIE5vU3VjaE1ldGhvZEV4Y2VwdGlvbiwg SWxsZWdhbEFj
Y2Vzc0V4Y2VwdGlvbiwgSW52b2NhdGlvblRhcmdldEV4Y2VwdGlvbiB7ICAg IAkNCiAgICAg
ICAgQVNNTW9kZWwgaW5wdXRNb2RlbDsNCiAgICAgICAgU3lzdGVtLm91dC5w cmludGxuKCJM
b2FkaW5nIGlucHV0IG1vZGVsIElOIik7IC8vJE5PTi1OTFMtMSQNCiAgICAg ICAgaW5wdXRN
b2RlbCA9IGxvYWRNb2RlbCh0aGlzLmFtaCwgIklOIiwgdGhpcy5tZXRhTW9k ZWwsIGluTW9k
ZWwpOyAvLyROT04tTkxTLTEkIA0KICAgICAgICBpbnB1dE1vZGVsLnNldElz VGFyZ2V0KGZh
bHNlKTsNCiAgICAgICAgKChBU01FTUZNb2RlbClpbnB1dE1vZGVsKS5zZXRD aGVja1NhbWVN
b2RlbChmYWxzZSk7DQogICAgICAgIHRoaXMubW9kZWxzLnB1dCgiSU4iLCBp bnB1dE1vZGVs
KTsgLy8kTk9OLU5MUy0xJA0KICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4o IlVzaW5nIGlu
cHV0IG1vZGVsICIgKyBpbnB1dE1vZGVsKTsgLy8kTk9OLU5MUy0xJA0KICAg IH0NCg0KICAg
IC8qKg0KICAgICAqIEFkZCB0aGUgb3V0cHV0IG1vZGVsIHRvIHRoZSBpbnRl cm5hbCBsaXN0
DQogICAgICovDQogICAgcHVibGljIHZvaWQgYWRkT3V0cHV0TW9kZWwoKSB7 DQogICAgICAg
IEFTTU1vZGVsIG91dHB1dE1vZGVsOw0KICAgICAgICBTeXN0ZW0ub3V0LnBy aW50bG4oIkNy
ZWF0aW5nIG5ldyBtb2RlbCBPVVQgZm9yIG91dHB1dCIpOyAvLyROT04tTkxT LTEkDQogICAg
ICAgIG91dHB1dE1vZGVsID0gdGhpcy5hbWgubmV3TW9kZWwoIk9VVCIsIHRo aXMubWV0YU1v
ZGVsKTsgLy8kTk9OLU5MUy0xJA0KICAgICAgICAoKEFTTUVNRk1vZGVsKW91 dHB1dE1vZGVs
KS5zZXRDaGVja1NhbWVNb2RlbChmYWxzZSk7DQogICAgICAgIHRoaXMubW9k ZWxzLnB1dCgi
T1VUIiwgb3V0cHV0TW9kZWwpOyAvLyROT04tTkxTLTEkDQogICAgICAgIFN5 c3RlbS5vdXQu
cHJpbnRsbigiVXNpbmcgb3V0cHV0IG1vZGVsICIgKyBvdXRwdXRNb2RlbCk7 IC8vJE5PTi1O
TFMtMSQNCiAgICB9DQoNCiAgICAvKioNCiAgICAgKiBFeGVjdXRlcyB0aGUg QVRMIGVuZ2lu
ZQ0KICAgICAqIDxwPg0KICAgICAqIFRoaXMgaXMgc3BlY2lhbGl6ZWQgZm9y IG91ciB0b29s
LCBtZWFuaW5nOjx1bD4NCiAgICAgKiA8bGk+bGlicmFyaWVzIGFyZSBzZXQg dG8gW1hNTEhl
bHBlcnMuYXNtICwgbGliVHJhbnNmb3JtYXRpb24uYXNtXQ0KICAgICAqIDxs aT5tZXRhbW9k
ZWxzIGFyZSBzZXQgdG8gWy4uL21vZGVsL21ldGEuZWNvcmUgLCBYTUwuZWNv cmVdDQogICAg
ICogPC91bD4NCiAgICAgKiA8L3A+DQogICAgICogQHBhcmFtIGluTW9kZWwg dGhlIGlucHV0
IG1vZGVsIChvciBwYXJ0IG9mIGl0KSB0byB0cmFuc2Zvcm0NCiAgICAgKiBA cGFyYW0gaW5U
cmFuc2Zvcm1hdGlvbiB0aGUgbmFtZSBvZiB0aGUgdHJhbnNmb3JtYXRpb24g dG8gZXhlY3V0
ZQ0KICAgICAqIEBwYXJhbSBvdXRNb2RlbCB0aGUgcmVzdWx0IG9mIHRoZSB0 cmFuc2Zvcm1h
dGlvbiwgdG8gYmUgbWVyZ2VkIGludG8gdGhlIG1haW4gbW9kZWwNCiAgICAg Ki8NCiAgICBw
dWJsaWMgdm9pZCBkb0FUTFRyYW5zZm9ybWF0aW9uKEJ5dGVBcnJheUlucHV0 U3RyZWFtIGlu
TW9kZWwsIFN0cmluZyBpblRyYW5zZm9ybWF0aW9uLCBCeXRlQXJyYXlPdXRw dXRTdHJlYW0g
b3V0TW9kZWwpew0KICAgICAgICB0cnkgew0KICAgICAgICAgICAgdGhpcy5h bWggPSBBdGxN
b2RlbEhhbmRsZXIuZ2V0RGVmYXVsdCgiRU1GIik7IC8vJE5PTi1OTFMtMSQN CiAgICAgICAg
ICAgIFVSTCB0cmFucyA9IG5ldyBVUkwoImZpbGU6IisgdGhpcy51c2VQYXRo ICsgaW5UcmFu
c2Zvcm1hdGlvbiArICIuYXNtIik7IC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5M Uy0yJA0KICAg
ICAgICAJSGFzaE1hcDxTdHJpbmcsIFVSTD4gbGlicyA9IG5ldyBIYXNoTWFw PFN0cmluZywg
VVJMPigpOw0KICAgICAgICAJbGlicy5wdXQoImxpYlRyYW5zZm9ybWF0aW9u IiwgbmV3IFVS
TCgiZmlsZToiICsgdGhpcy51c2VQYXRoICsgImxpYlRyYW5zZm9ybWF0aW9u LmFzbSIpKTsg
Ly8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkIC8vJE5PTi1OTFMtMyQNCiAg ICAgICAgCWxp
YnMucHV0KCJYTUxIZWxwZXJzIiwgbmV3IFVSTCgiZmlsZToiICt0aGlzLnVz ZVBhdGggKyAi
WE1MSGVscGVycy5hc20iKSk7IC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0y JCAvLyROT04t
TkxTLTMkDQogICAgICAgIAkNCiAgICAgICAgCWFkZE1ldGFNb2RlbCgiWE1M IiwgdGhpcy51
c2VQYXRoICsgIlhNTC5lY29yZSIpOyAvLyROT04tTkxTLTEkIC8vJE5PTi1O TFMtMiQNCiAg
ICAgICAgCUZpbGUgZiA9IG5ldyBGaWxlKHRoaXMudXNlUGF0aCArICJwYXJh bWV0ZXJzLVhN
TC5lY29yZSIpOyAvLyROT04tTkxTLTEkDQogICAgICAgIAlieXRlW10gYnVm ID0gbmV3IGJ5
dGVbKGludClmLmxlbmd0aCgpXTsNCiAgICAgICAgCS8vIGFjdHVhbGx5IGYu bGVuZ3RoKCkg
cmV0dXJucyBhIGxvbmcsIGJ1dCBhbiBpbnQgc2hvdWxkIGJlIGxhcmdlIGVu b3VnaCBmb3Ig
b3VyIHBhcmFtZXRlciBmaWxlDQogICAgICAgIAlGaWxlSW5wdXRTdHJlYW0g ZmlzID0gbmV3
IEZpbGVJbnB1dFN0cmVhbShmKTsNCiAgICAgICAgCWZpcy5yZWFkKGJ1Zik7 DQogICAgICAg
IAlhZGRJbnB1dE1vZGVsKG5ldyBCeXRlQXJyYXlJbnB1dFN0cmVhbShidWYp KTsNCiAgICAg
ICAgCQ0KICAgICAgICAJYWRkTWV0YU1vZGVsKCJtZXRhIiwgdGhpcy51c2VQ YXRoICsgIm1l
dGEuZWNvcmUiKTsgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkDQogICAg ICAgIAlhZGRJ
bnB1dE1vZGVsKGluTW9kZWwpOw0KICAgICAgICAJYWRkT3V0cHV0TW9kZWwo KTsNCiAgICAg
ICAgCQ0KICAgICAgICAJU3lzdGVtLm91dC5wcmludGxuKCJTdGFydGluZyBt b2RlbCB0cmFu
c2Zvcm1hdGlvbiAiICsgaW5UcmFuc2Zvcm1hdGlvbik7IC8vJE5PTi1OTFMt MSQNCiAgICAg
ICAgICAgIEF0bExhdW5jaGVyIG15TGF1bmNoZXIgPSBBdGxMYXVuY2hlci5n ZXREZWZhdWx0
KCk7DQogICAgICAgICAgICBteUxhdW5jaGVyLmxhdW5jaCh0cmFucywgbGli cywgdGhpcy5t
b2RlbHMsIENvbGxlY3Rpb25zLkVNUFRZX01BUCk7IA0KICAgICAgICAgICAg U3lzdGVtLm91
dC5wcmludGxuKCJNb2RlbCB0cmFuc2Zvcm1hdGlvbiBkb25lIik7IC8vJE5P Ti1OTFMtMSQN
CiAgICAgICAgICAgIHRoaXMuYW1oLnNhdmVNb2RlbCh0aGlzLm1vZGVscy5n ZXQoIk9VVCIp
LCBvdXRNb2RlbCk7IC8vJE5PTi1OTFMtMSQNCiAgICAgICAgfSBjYXRjaCAo RXhjZXB0aW9u
IGUpIHsNCiAgICAgICAgICAgIFN5c3RlbS5lcnIucHJpbnQoZS50b1N0cmlu ZygpKTsNCiAg
ICAgICAgICAgIGUucHJpbnRTdGFja1RyYWNlKCk7DQogICAgICAgIH0NCiAg ICB9DQoNCg0K
ICAgIHB1YmxpYyB2b2lkIHRyYW5zZm9ybSgpIHsNCglTdHJpbmcgc2VsVHJh bnM7IC8qIHRo
ZSBuYW1lIG9mIHRoZSBzZWxlY3RlZCB0cmFuc2Zvcm1hdGlvbiAqLw0KCS8q IHNzZWwgaXMg
YSBMaXN0PEVPYmplY3Q+IGNvbnRhaW5pbmcgdGhlIHBhcnQgb2YgdGhlIG1v ZGVsIHRvIGJl
IHRyYW5zZm9ybWVkICovDQoJDQoJLy8gQ3JlYXRlIGEgcmVzb3VyY2Ugc2V0 IHRvIGhvbGQg
dGhlIHJlc291cmNlcy4NCglSZXNvdXJjZVNldCByZXNvdXJjZVNldCA9IG5l dyBSZXNvdXJj
ZVNldEltcGwoKTsNCg0KCS8vIFJlZ2lzdGVyIHRoZSBhcHByb3ByaWF0ZSBy ZXNvdXJjZSBm
YWN0b3J5IHRvIGhhbmRsZSBhbGwgZmlsZSBleHRlbnNpb25zLg0KCXJlc291 cmNlU2V0Lmdl
dFJlc291cmNlRmFjdG9yeVJlZ2lzdHJ5KCkuZ2V0RXh0ZW5zaW9uVG9GYWN0 b3J5TWFwKCkN
CgkJLnB1dChSZXNvdXJjZS5GYWN0b3J5LlJlZ2lzdHJ5LkRFRkFVTFRfRVhU RU5TSU9OLCBu
ZXcgWE1JUmVzb3VyY2VGYWN0b3J5SW1wbCgpKTsNCg0KCS8vIFJlZ2lzdGVy IHRoZSBwYWNr
YWdlIHRvIGVuc3VyZSBpdCBpcyBhdmFpbGFibGUgZHVyaW5nIGxvYWRpbmcu DQoJcmVzb3Vy
Y2VTZXQuZ2V0UGFja2FnZVJlZ2lzdHJ5KCkucHV0KE1ldGFQYWNrYWdlLmVO U19VUkksIE1l
dGFQYWNrYWdlLmVJTlNUQU5DRSk7DQoNCglSZXNvdXJjZSByZXNvdXJjZSA9 IHJlc291cmNl
U2V0LmNyZWF0ZVJlc291cmNlKFVSSS5jcmVhdGVVUkkoImh0dHA6Ly8vTXku bWV0YSIpKTsg
Ly8kTk9OLU5MUy0xJA0KDQoJLy8gYWRkIHRoZSBzZWxlY3Rpb24gdG8gdGhl IG5ldyBjb250
YWluZXIgKHJlc291cmNlKSwgcmVtb3ZlIGl0IGZyb20gdGhlDQoJLy8gcHJl dmlvdXMgY29u
dGFpbmVyICh0aGUgdHJlZS9lUmVzKS4NCglmb3IgKGludCBpID0gMDsgaSA8 IHNzZWwuc2l6
ZSgpOyBpKyspIHsNCgkJcmVzb3VyY2UuZ2V0Q29udGVudHMoKS5hZGQoc3Nl bC5nZXQoaSkp
Ow0KCX0NCglCeXRlQXJyYXlPdXRwdXRTdHJlYW0gb3V0cHV0U3RyZWFtID0g bmV3IEJ5dGVB
cnJheU91dHB1dFN0cmVhbSgpOw0KCXRyeSB7DQoJCXJlc291cmNlLnNhdmUo b3V0cHV0U3Ry
ZWFtLCBudWxsKTsNCgl9IGNhdGNoIChJT0V4Y2VwdGlvbiBpb2UpIHsNCgkJ aW9lLnByaW50
U3RhY2tUcmFjZSgpOw0KCX0NCglieXRlW10gYiA9IG91dHB1dFN0cmVhbS50 b1N0cmluZygp
LmdldEJ5dGVzKCk7DQoJQnl0ZUFycmF5SW5wdXRTdHJlYW0gYmFpcyA9IG5l dyBCeXRlQXJy
YXlJbnB1dFN0cmVhbShiKTsNCglCeXRlQXJyYXlPdXRwdXRTdHJlYW0gYmFv cyA9IG5ldyBC
eXRlQXJyYXlPdXRwdXRTdHJlYW0oKTsNCglkb0FUTFRyYW5zZm9ybWF0aW9u KGJhaXMsIHNl
bFRyYW5zLCBiYW9zKTsNCiAgICB9
--------------000108010402050600090402--
Re: [ATL] transformations with multiple input metamodels/libraries failing from Java [message #55237 is a reply to message #55205] Mon, 30 July 2007 10:39 Go to previous messageGo to next message
Dennis Wagelaar is currently offline Dennis WagelaarFriend
Messages: 147
Registered: July 2009
Senior Member
Rene Ladan schreef:
> Hi,
>
> I'm working on a tool which uses a modified version of Dennis' command
> line ATL launcher (see attachment for the relevant snippet).
>
> The tool correctly executes ATL transformations, except in the case
> where there are multiple input metamodels and/or multiple libraries.
> In that case the tool correctly invokes the ATL engine, but the engine
> itself fails. When I execute the same transformation from Eclipse,
> using the same (meta)models, the engine works correctly.
>
> I've attached a log containing the backtrace and the files to which make
> up the transformation.
>
> Environment:
> * JDK 1.6b2 (!)
> * Eclipse 3.3
> * EMF 2.3
> * ATL 2007-02-16
>
> Any ideas?
>
> Regards,
> Rene
>
>
> ------------------------------------------------------------ ------------
>
> Dumping selection as XMI:
> <?xml version="1.0" encoding="ASCII"?>
> <meta:MemoryNode xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:meta="meta" name="remember" type="." size="88"/>
>
> Loading input metamodel XML @ org.atl.eclipse.engine.AtlEMFModelHandler@d95bc3 from /Documents and Settings/rladan/workspace/mt-test/transformations/XML.ecore
> Referenced extents: []
> Using input metamodel XML : MOF
> Loading input model IN
> Referenced extents: []
> Using input model IN : XML
> Loading input metamodel meta @ org.atl.eclipse.engine.AtlEMFModelHandler@d95bc3 from /Documents and Settings/rladan/workspace/mt-test/transformations/meta.ecore
> Referenced extents: []
> Using input metamodel meta : MOF
> Loading input model IN
> Referenced extents: []
> Using input model IN : meta
> Creating new model OUT for output
> Using output model OUT : meta
> Starting model transformation more_memory
*snip*

You use two models named 'IN'. That's not even possible in the Eclipse
interface, so I think you intended to do something else ;-).

Dennis

P.S. All models go in a Map with their name as key. Only the last 'IN'
model is accessible by ATL.
Re: [ATL] transformations with multiple input metamodels/libraries failing from Java [message #55263 is a reply to message #55237] Mon, 30 July 2007 11:59 Go to previous message
Eclipse UserFriend
Originally posted by: r.c.ladan.tue.nl

Dennis Wagelaar wrote:
> Rene Ladan schreef:
>> Hi,
>>
>> I'm working on a tool which uses a modified version of Dennis' command
>> line ATL launcher (see attachment for the relevant snippet).
>>
[..snip..]
>>
>>
>> ------------------------------------------------------------ ------------
>>
>> Dumping selection as XMI:
>> <?xml version="1.0" encoding="ASCII"?>
>> <meta:MemoryNode xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI"
>> xmlns:meta="meta" name="remember" type="." size="88"/>
>>
>> Loading input metamodel XML @
>> org.atl.eclipse.engine.AtlEMFModelHandler@d95bc3 from /Documents and
>> Settings/rladan/workspace/mt-test/transformations/XML.ecore
>> Referenced extents: []
>> Using input metamodel XML : MOF
>> Loading input model IN
>> Referenced extents: []
>> Using input model IN : XML
>> Loading input metamodel meta @
>> org.atl.eclipse.engine.AtlEMFModelHandler@d95bc3 from /Documents and
>> Settings/rladan/workspace/mt-test/transformations/meta.ecore
>> Referenced extents: []
>> Using input metamodel meta : MOF
>> Loading input model IN
>> Referenced extents: []
>> Using input model IN : meta
>> Creating new model OUT for output
>> Using output model OUT : meta
>> Starting model transformation more_memory
> *snip*
>
> You use two models named 'IN'. That's not even possible in the Eclipse
> interface, so I think you intended to do something else ;-).
>
Yes. I changed the name of the parameter model (the one with the XML
metamodel) to 'parameters' as specified in my ATL files, it works now.
> Dennis
>
> P.S. All models go in a Map with their name as key. Only the last 'IN'
> model is accessible by ATL.

That would have been the input model (I got it partially correct the
first time :) )

Thanks,
Rene
Previous Topic:[ATL] Re: feature e does not exist on
Next Topic:resolve duplicate elements of the target model
Goto Forum:
  


Current Time: Sun Dec 22 12:50:04 GMT 2024

Powered by FUDForum. Page generated in 0.03985 seconds
.:: Contact :: Home ::.

Powered by: FUDforum 3.0.2.
Copyright ©2001-2010 FUDforum Bulletin Board Software

Back to the top