[MWE] Error by executeWorkflow [message #524563] |
Thu, 01 April 2010 12:33 |
MaximeLecourt Messages: 108 Registered: February 2010 Location: France |
Senior Member |
|
|
Hello,
In a m2m and m2t project, I'm having trouble with my workflow.
I use a object model, which I transform into a relationnal model, and generate SQL code from that.
I get an error when trying to run it.
My workflow looks like this
Quote: | <workflow>
<property name="src-gen" value="src-gen" />
<property name="relationnalmodel" value="src-gen/outModel.xmi" />
<bean class="org.eclipse.emf.mwe.utils.StandaloneSetup">
<platformUri value=".." />
<!-- first ecore -->
<registerEcoreFile value="platform:/resource/genCPP/src/metamodel/metamodel.ecore "/>
<!-- second ecore -->
<registerEcoreFile value="platform:/resource/genCPP/src/metamodel/relationnel.ecore " />
</bean>
<!--read the model -->
<component class="org.eclipse.emf.mwe.utils.Reader">
<uri value="src/Model.xmi" />
<modelSlot value="model" />
</component>
<!--transform the model -->
<component class="org.eclipse.xtend.XtendComponent">
<metaModel class="org.eclipse.xtend.typesystem.emf.EmfRegistryMetaModel " />
<invoke value="object2relationnal::object2relationnal::transform(model) "/>
<outputSlot value="newModel"/>
</component>
<!--write the new model -->
<component class="org.eclipse.emf.mwe.utils.Writer">
<modelSlot value="newModel" />
<uri value="${relationnalmodel}" />
</component>
<!-- load the new model and store it in slot 'model' -->
<component class="org.eclipse.emf.mwe.utils.Reader">
<uri value="platform:/resource/${relationnalmodel}" />
<modelSlot value="model" />
</component>
<!--once model is writen, generate SQL tables and SQL procedures-->
<component class="org.eclipse.xpand2.Generator">
<expand
value="object2relationnal::SQL::main FOR Base" />
<outlet path="${src-gen}" >
</outlet>
</component>
</workflow>
|
I believe the error is somewhere around the red part, as the workflow runned fine before I added that part.
When running it, I get the following error :
1 avr. 2010 14:03:10 org.eclipse.emf.mwe.core.container.CompositeComponent internalInvoke
INFO: Reader: Loading model from platform:/resource/src-gen/outModel.xmi
1 avr. 2010 14:03:10 org.eclipse.emf.mwe.core.WorkflowRunner executeWorkflow
GRAVE: java.io.IOException: The path '/src-gen/outModel.xmi' is unmapped
org.eclipse.emf.ecore.resource.impl.ResourceSetImpl$1DiagnosticWrappedException: java.io.IOException: The path '/src-gen/outModel.xmi' is unmapped
One day I shall master M2T, but that day has yet to come...
|
|
|
Re: [MWE] Error by executeWorkflow [message #524746 is a reply to message #524563] |
Fri, 02 April 2010 08:28 |
MaximeLecourt Messages: 108 Registered: February 2010 Location: France |
Senior Member |
|
|
I didn't go far since yesterday, but things moved a bit.
In my workflow, first parapgraph is used to load the metamodels.
My problem is that later on, I think I need to specify which metamodel to use with what model.
<workflow>
<property name="src-gen" value="src-gen" />
<property name="relationnalmodel" value="src-gen/outModel.xmi" />
<bean class="org.eclipse.emf.mwe.utils.StandaloneSetup">
<platformUri value=".." />
<!-- first ecore -->
<registerEcoreFile value="platform:/resource/genCPP/src/metamodel/metamodel.ecore"/>
<!-- second ecore -->
<registerEcoreFile value="platform:/resource/genCPP/src/metamodel/relationnel.ecore" />
</bean>
<!--read the model -->
<component class="org.eclipse.emf.mwe.utils.Reader">
<uri value="src/Model.xmi" />
<modelSlot value="model" />
</component>
<!--transform the model -->
<component class="org.eclipse.xtend.XtendComponent">
<metaModel class="org.eclipse.xtend.typesystem.emf.EmfRegistryMetaModel" />
<invoke value="object2relationnal::object2relationnal::transform(model)"/>
<outputSlot value="newModel"/>
</component>
<!--write the new model -->
<component class="org.eclipse.emf.mwe.utils.Writer">
<modelSlot value="newModel" />
<uri value="${relationnalmodel}" />
</component>
<!-- load the new model and store it in slot 'model' -->
<component class="org.eclipse.emf.mwe.utils.Reader">
<uri value="${relationnalmodel}" />
<modelSlot value="newModel" />
</component>
<!--once model is writen, generate SQL tables and SQL procedures-->
<component class="org.eclipse.xpand2.Generator">
<expand
value="object2relationnal::SQL::main FOR Base" />
<outlet path="${src-gen}" >
</outlet>
</component>
</workflow>
Even with that warning, code is generated, but once I try tu use the model newly generated, I get another error
2 avr. 2010 09:59:26 org.eclipse.emf.mwe.core.WorkflowRunner logIssues
ATTENTION: [WARNING]: no metamodels specified (use 'metaModel' property)!(Element: -UNKNOWN-; Reported by: -UNKNOWN-)
2 avr. 2010 09:59:26 org.eclipse.emf.mwe.core.container.CompositeComponent internalInvoke
INFO: Reader: Loading model from src/Model.xmi
I'm still guessing, but once I try to load outModel.xmi (which I just generated), to do a model to text transformation, I think the workflow can't find the metamodel.
2 avr. 2010 09:59:26 org.eclipse.emf.mwe.core.container.CompositeComponent internalInvoke
INFO: XtendComponent: executing 'object2relationnal::object2relationnal'
2 avr. 2010 09:59:26 org.eclipse.emf.mwe.core.container.CompositeComponent internalInvoke
INFO: Writer: Writing model to src-gen/outModel.xmi
2 avr. 2010 09:59:26 org.eclipse.emf.mwe.core.container.CompositeComponent internalInvoke
INFO: Reader: Loading model from src-gen/outModel.xmi
2 avr. 2010 09:59:26 org.eclipse.emf.mwe.core.container.CompositeComponent internalInvoke
INFO: Generator: generating 'object2relationnal::SQL::main FOR Base' => src-gen
2 avr. 2010 09:59:26 org.eclipse.xtend.expression.AbstractExpressionsUsingWorkflowComponent invokeInternal
GRAVE: Error in Component of type org.eclipse.xpand2.Generator:
EvaluationException : Couldn't find type or property 'Base'
[64,4] on line 1 'Base'
Does someone understand where the problem lies ?
One day I shall master M2T, but that day has yet to come...
|
|
|
|
Powered by
FUDForum. Page generated in 0.03531 seconds