SOM-Research / emf-rest

EMF as RESTFul APIs
https://som-research.uoc.edu/tools/emf-rest/
Eclipse Public License 1.0
39 stars 15 forks source link

NPE #14

Closed magick93 closed 7 years ago

magick93 commented 7 years ago

Hello

While trying to generate from the below .ecore model no code was generated, and the following exceptions occurred:

Starting MTC: MTC
Setting variable [output] value to: /home/anton/workspaces/emfjson/ifmlrest/src/main/java
Setting variable [ecore_file] value to: /home/anton/workspaces/emfjson/ifmlrest/src/main/resources/IFML.ecore
Setting variable [genModel_file] value to: /home/anton/workspaces/emfjson/ifmlrest/src/main/resources/IFML.genmodel
Setting variable [output_js] value to: /home/anton/workspaces/emfjson/ifmlrest/src/main/webapp/scripts
Setting variable [pluginName] value to: ifmlrest
Setting variable [foreignModel] value to: IFML.ecore
Setting variable [modelName] value to: 
Setting variable [output_pom] value to: /home/anton/workspaces/emfjson/ifmlrest
Initializing Model Environments.
Finished Model Environments Initialization.
Model ready : Ecore Fully Annotated(/home/anton/workspaces/emfjson/ifmlrest/src/main/resources/IFML.ecore)
Executing Ecore -> JavaScript API transformation
Executing Ecore->Genmodel transformation
Executing Default Index transformation
Executing pom transformation
Exception executing Default Index transformation
java.lang.NullPointerException
    at com.emf.rest.standalone.PluginResourceLocator.getTarget(PluginResourceLocator.java:188)
    at com.mtcflow.engine.egl.EGLTransformationExecutor$1.createModule(EGLTransformationExecutor.java:51)
    at com.mtcflow.engine.epsilon.common.EpsilonExecutor.execute(EpsilonExecutor.java:93)
    at com.mtcflow.engine.egl.EGLTransformationExecutor.executeTransformation(EGLTransformationExecutor.java:88)
    at com.mtcflow.engine.core.MTCChoreographer$1.run(MTCChoreographer.java:628)
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
    at java.util.concurrent.FutureTask.run(FutureTask.java:266)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
    at java.lang.Thread.run(Thread.java:745)

pom transformation finished.
Ecore -> JavaScript API transformation finished.
Model ready : GenModel(/home/anton/workspaces/emfjson/ifmlrest/src/main/resources/IFML.genmodel)
Ecore->Genmodel transformation finished.
Executing GenerateEMF transformation
Exception executing GenerateEMF transformation
java.lang.NullPointerException
    at org.eclipse.emf.codegen.ecore.genmodel.impl.GenPackageImpl$DependencyHelper.handle(GenPackageImpl.java:2472)
    at org.eclipse.emf.codegen.ecore.genmodel.impl.GenPackageImpl$DependencyHelper.<init>(GenPackageImpl.java:2404)
    at org.eclipse.emf.codegen.ecore.genmodel.impl.GenPackageImpl.prepareCache(GenPackageImpl.java:3202)
    at org.eclipse.emf.codegen.ecore.genmodel.generator.GenPackageGeneratorAdapter.doPreGenerate(GenPackageGeneratorAdapter.java:177)
    at org.eclipse.emf.codegen.ecore.generator.AbstractGeneratorAdapter.preGenerate(AbstractGeneratorAdapter.java:283)
    at org.eclipse.emf.codegen.ecore.generator.Generator.generate(Generator.java:700)
    at org.eclipse.emf.codegen.ecore.generator.Generator.generate(Generator.java:619)
    at com.emf.rest.EMFGenerator.executeTransformation(EMFGenerator.java:50)
    at com.mtcflow.engine.core.MTCChoreographer$1.run(MTCChoreographer.java:628)
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
    at java.util.concurrent.FutureTask.run(FutureTask.java:266)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
    at java.lang.Thread.run(Thread.java:745)

Model

<?xml version="1.0" encoding="UTF-8"?>
<ecore:EPackage xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" name="IFML" nsURI="http://www.omg.org/spec/20130218" nsPrefix="IFML">
  <eSubpackages name="DataTypes" nsURI="http://www.omg.org/spec/20130218/data" nsPrefix="data">
    <eClassifiers xsi:type="ecore:EEnum" name="Direction">
      <eLiterals name="in"/>
      <eLiterals name="out"/>
      <eLiterals name="inout"/>
    </eClassifiers>
    <eClassifiers xsi:type="ecore:EEnum" name="SystemEventType">
      <eLiterals name="time"/>
      <eLiterals name="specialCondition"/>
      <eLiterals name="actionCompletion"/>
    </eClassifiers>
    <eClassifiers xsi:type="ecore:EEnum" name="ContextVariableScope">
      <eLiterals name="ApplicationScope"/>
      <eLiterals name="SessionScope"/>
      <eLiterals name="ViewContainerScope"/>
    </eClassifiers>
  </eSubpackages>
  <eSubpackages name="Core" nsURI="http://www.omg.org/spec/20130218/core" nsPrefix="core">
    <eClassifiers xsi:type="ecore:EClass" name="InteractionFlow" abstract="true" eSuperTypes="#//Core/InteractionFlowModelElement">
      <eStructuralFeatures xsi:type="ecore:EReference" name="parameterBindingGroup"
          ordered="false" eType="#//Core/ParameterBindingGroup" containment="true"/>
      <eStructuralFeatures xsi:type="ecore:EReference" name="sourceInteractionFlowElement"
          ordered="false" lowerBound="1" eType="#//Core/InteractionFlowElement" eOpposite="#//Core/InteractionFlowElement/outInteractionFlows"/>
      <eStructuralFeatures xsi:type="ecore:EReference" name="targetInteractionFlowElement"
          ordered="false" lowerBound="1" eType="#//Core/InteractionFlowElement" eOpposite="#//Core/InteractionFlowElement/inInteractionFlows"/>
    </eClassifiers>
    <eClassifiers xsi:type="ecore:EClass" name="InteractionFlowExpression" eSuperTypes="#//Core/Expression">
      <eStructuralFeatures xsi:type="ecore:EReference" name="interactionFlow" ordered="false"
          lowerBound="2" upperBound="-1" eType="#//Core/InteractionFlow"/>
    </eClassifiers>
    <eClassifiers xsi:type="ecore:EClass" name="SystemEvent" eSuperTypes="#//Core/CatchingEvent">
      <eStructuralFeatures xsi:type="ecore:EReference" name="triggeringExpressions"
          ordered="false" upperBound="-1" eType="#//Core/Expression" containment="true"/>
      <eStructuralFeatures xsi:type="ecore:EAttribute" name="type" ordered="false"
          lowerBound="1" eType="#//DataTypes/SystemEventType"/>
    </eClassifiers>
    <eClassifiers xsi:type="ecore:EClass" name="ParameterBinding" eSuperTypes="#//Core/InteractionFlowModelElement">
      <eStructuralFeatures xsi:type="ecore:EReference" name="sourceParameter" ordered="false"
          lowerBound="1" eType="#//Core/IFMLParameter"/>
      <eStructuralFeatures xsi:type="ecore:EReference" name="targetParameter" ordered="false"
          lowerBound="1" eType="#//Core/IFMLParameter"/>
    </eClassifiers>
    <eClassifiers xsi:type="ecore:EClass" name="ActionEvent" eSuperTypes="#//Core/CatchingEvent"/>
    <eClassifiers xsi:type="ecore:EClass" name="DomainModel" eSuperTypes="#//Core/NamedElement">
      <eStructuralFeatures xsi:type="ecore:EReference" name="domainElements" ordered="false"
          upperBound="-1" eType="#//Core/DomainElement" containment="true"/>
    </eClassifiers>
    <eClassifiers xsi:type="ecore:EClass" name="NamedElement" abstract="true" eSuperTypes="#//Core/Element">
      <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" ordered="false"
          lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
    </eClassifiers>
    <eClassifiers xsi:type="ecore:EClass" name="PortDefinition" eSuperTypes="#//Core/InteractionFlowElement">
      <eStructuralFeatures xsi:type="ecore:EReference" name="ports" ordered="false"
          upperBound="-1" eType="#//Core/IFMLPort" eOpposite="#//Core/IFMLPort/portDefinition"/>
    </eClassifiers>
    <eClassifiers xsi:type="ecore:EClass" name="ContentBinding" abstract="true" eSuperTypes="#//Core/ViewComponentPart">
      <eStructuralFeatures xsi:type="ecore:EAttribute" name="uniformResourceIdentifier"
          ordered="false" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
    </eClassifiers>
    <eClassifiers xsi:type="ecore:EClass" name="ViewElement" eSuperTypes="#//Core/InteractionFlowElement">
      <eStructuralFeatures xsi:type="ecore:EReference" name="viewElementEvents" ordered="false"
          upperBound="-1" eType="#//Core/ViewElementEvent" containment="true"/>
      <eStructuralFeatures xsi:type="ecore:EReference" name="activationExpression"
          ordered="false" eType="#//Core/ActivationExpression"/>
      <eStructuralFeatures xsi:type="ecore:EReference" name="viewContainer" ordered="false"
          eType="#//Core/ViewContainer" eOpposite="#//Core/ViewContainer/viewElements"/>
    </eClassifiers>
    <eClassifiers xsi:type="ecore:EClass" name="Expression" abstract="true" eSuperTypes="#//Core/InteractionFlowModelElement">
      <eStructuralFeatures xsi:type="ecore:EAttribute" name="language" ordered="false"
          lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
      <eStructuralFeatures xsi:type="ecore:EAttribute" name="body" ordered="false"
          lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
    </eClassifiers>
    <eClassifiers xsi:type="ecore:EClass" name="DynamicBehavior" eSuperTypes="#//Core/ContentBinding">
      <eStructuralFeatures xsi:type="ecore:EReference" name="behavioralFeatureConcept"
          ordered="false" eType="#//Core/BehavioralFeatureConcept" eOpposite="#//Core/BehavioralFeatureConcept/dynamicBehavior"/>
      <eStructuralFeatures xsi:type="ecore:EReference" name="behaviorConcept" ordered="false"
          eType="#//Core/BehaviorConcept" eOpposite="#//Core/BehaviorConcept/dynamicBehavior"/>
    </eClassifiers>
    <eClassifiers xsi:type="ecore:EClass" name="Viewpoint" eSuperTypes="#//Core/NamedElement">
      <eStructuralFeatures xsi:type="ecore:EReference" name="interactionFlowModelElements"
          ordered="false" upperBound="-1" eType="#//Core/InteractionFlowModelElement"/>
      <eStructuralFeatures xsi:type="ecore:EReference" name="context" ordered="false"
          lowerBound="1" eType="#//Core/Context"/>
    </eClassifiers>
    <eClassifiers xsi:type="ecore:EClass" name="DataFlow" eSuperTypes="#//Core/InteractionFlow"/>
    <eClassifiers xsi:type="ecore:EClass" name="ViewComponentPart" eSuperTypes="#//Core/InteractionFlowElement">
      <eStructuralFeatures xsi:type="ecore:EReference" name="viewElementEvents" ordered="false"
          upperBound="-1" eType="#//Core/ViewElementEvent" containment="true"/>
      <eStructuralFeatures xsi:type="ecore:EReference" name="activationExpression"
          ordered="false" eType="#//Core/ActivationExpression"/>
      <eStructuralFeatures xsi:type="ecore:EReference" name="parentViewComponentPart"
          ordered="false" eType="#//Core/ViewComponentPart" eOpposite="#//Core/ViewComponentPart/subViewComponentParts"/>
      <eStructuralFeatures xsi:type="ecore:EReference" name="subViewComponentParts"
          ordered="false" upperBound="-1" eType="#//Core/ViewComponentPart" containment="true"
          eOpposite="#//Core/ViewComponentPart/parentViewComponentPart"/>
    </eClassifiers>
    <eClassifiers xsi:type="ecore:EClass" name="ViewContainer" eSuperTypes="#//Core/ViewElement">
      <eStructuralFeatures xsi:type="ecore:EAttribute" name="isLandmark" ordered="false"
          lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
      <eStructuralFeatures xsi:type="ecore:EAttribute" name="isDefault" ordered="false"
          lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
      <eStructuralFeatures xsi:type="ecore:EAttribute" name="isXOR" ordered="false"
          lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
      <eStructuralFeatures xsi:type="ecore:EReference" name="viewElements" ordered="false"
          upperBound="-1" eType="#//Core/ViewElement" containment="true" eOpposite="#//Core/ViewElement/viewContainer"/>
      <eStructuralFeatures xsi:type="ecore:EReference" name="actions" ordered="false"
          upperBound="-1" eType="#//Core/IFMLAction" containment="true" eOpposite="#//Core/IFMLAction/viewContainer"/>
    </eClassifiers>
    <eClassifiers xsi:type="ecore:EClass" name="ActivationExpression" eSuperTypes="#//Core/BooleanExpression"/>
    <eClassifiers xsi:type="ecore:EClass" name="InteractionFlowModel" eSuperTypes="#//Core/NamedElement">
      <eStructuralFeatures xsi:type="ecore:EReference" name="interactionFlowModelElements"
          ordered="false" upperBound="-1" eType="#//Core/InteractionFlowModelElement"
          containment="true"/>
    </eClassifiers>
    <eClassifiers xsi:type="ecore:EClass" name="ContextDimension" eSuperTypes="#//Core/NamedElement"/>
    <eClassifiers xsi:type="ecore:EClass" name="IFMLModel" eSuperTypes="#//Core/NamedElement">
      <eStructuralFeatures xsi:type="ecore:EReference" name="interactionFlowModel"
          ordered="false" lowerBound="1" eType="#//Core/InteractionFlowModel" containment="true"/>
      <eStructuralFeatures xsi:type="ecore:EReference" name="domainModel" ordered="false"
          lowerBound="1" eType="#//Core/DomainModel" containment="true"/>
      <eStructuralFeatures xsi:type="ecore:EReference" name="interactionFlowModelViewpoint"
          ordered="false" upperBound="-1" eType="#//Core/Viewpoint" containment="true"/>
    </eClassifiers>
    <eClassifiers xsi:type="ecore:EClass" name="ModuleDefinition" eSuperTypes="#//Core/ModularizationElement">
      <eStructuralFeatures xsi:type="ecore:EReference" name="inputPorts" ordered="false"
          upperBound="-1" eType="#//Core/PortDefinition" containment="true"/>
      <eStructuralFeatures xsi:type="ecore:EReference" name="outputPorts" ordered="false"
          upperBound="-1" eType="#//Core/PortDefinition" containment="true"/>
      <eStructuralFeatures xsi:type="ecore:EReference" name="interactionFlowModelElement"
          ordered="false" lowerBound="1" upperBound="-1" eType="#//Core/InteractionFlowModelElement"
          containment="true"/>
      <eStructuralFeatures xsi:type="ecore:EReference" name="modules" ordered="false"
          upperBound="-1" eType="#//Core/IFMLModule" eOpposite="#//Core/IFMLModule/moduleDefinition"/>
      <eStructuralFeatures xsi:type="ecore:EReference" name="activityConcept" ordered="false"
          eType="#//Core/ActivityConcept" eOpposite="#//Core/ActivityConcept/moduleDefinition"/>
    </eClassifiers>
    <eClassifiers xsi:type="ecore:EClass" name="BooleanExpression" eSuperTypes="#//Core/Expression"/>
    <eClassifiers xsi:type="ecore:EClass" name="InteractionFlowElement" abstract="true"
        eSuperTypes="#//Core/NamedElement #//Core/InteractionFlowModelElement">
      <eStructuralFeatures xsi:type="ecore:EReference" name="parameters" ordered="false"
          upperBound="-1" eType="#//Core/IFMLParameter" containment="true"/>
      <eStructuralFeatures xsi:type="ecore:EReference" name="outInteractionFlows"
          ordered="false" upperBound="-1" eType="#//Core/InteractionFlow" containment="true"
          eOpposite="#//Core/InteractionFlow/sourceInteractionFlowElement"/>
      <eStructuralFeatures xsi:type="ecore:EReference" name="inInteractionFlows" ordered="false"
          upperBound="-1" eType="#//Core/InteractionFlow" eOpposite="#//Core/InteractionFlow/targetInteractionFlowElement"/>
    </eClassifiers>
    <eClassifiers xsi:type="ecore:EClass" name="IFMLAction" eSuperTypes="#//Core/InteractionFlowElement #//Core/NamedElement">
      <eStructuralFeatures xsi:type="ecore:EReference" name="actionEvents" ordered="false"
          upperBound="-1" eType="#//Core/ActionEvent" containment="true"/>
      <eStructuralFeatures xsi:type="ecore:EReference" name="dynamicBehavior" ordered="false"
          eType="#//Core/DynamicBehavior"/>
      <eStructuralFeatures xsi:type="ecore:EReference" name="viewContainer" ordered="false"
          eType="#//Core/ViewContainer" eOpposite="#//Core/ViewContainer/actions"/>
    </eClassifiers>
    <eClassifiers xsi:type="ecore:EClass" name="NavigationFlow" eSuperTypes="#//Core/InteractionFlow"/>
    <eClassifiers xsi:type="ecore:EClass" name="ParameterBindingGroup" eSuperTypes="#//Core/InteractionFlowModelElement">
      <eStructuralFeatures xsi:type="ecore:EReference" name="parameterBindings" ordered="false"
          lowerBound="1" upperBound="-1" eType="#//Core/ParameterBinding" containment="true"/>
    </eClassifiers>
    <eClassifiers xsi:type="ecore:EClass" name="Element" abstract="true">
      <eStructuralFeatures xsi:type="ecore:EAttribute" name="id" ordered="false" lowerBound="1"
          eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
      <eStructuralFeatures xsi:type="ecore:EReference" name="constraints" ordered="false"
          upperBound="-1" eType="#//Core/Constraint" containment="true"/>
      <eStructuralFeatures xsi:type="ecore:EReference" name="annotations" ordered="false"
          upperBound="-1" eType="#//Core/Annotation" containment="true"/>
    </eClassifiers>
    <eClassifiers xsi:type="ecore:EClass" name="Constraint" eSuperTypes="#//Core/BooleanExpression"/>
    <eClassifiers xsi:type="ecore:EClass" name="ViewComponent" eSuperTypes="#//Core/ViewElement">
      <eStructuralFeatures xsi:type="ecore:EReference" name="viewComponentParts" ordered="false"
          upperBound="-1" eType="#//Core/ViewComponentPart" containment="true"/>
    </eClassifiers>
    <eClassifiers xsi:type="ecore:EClass" name="IFMLParameter" eSuperTypes="#//Core/InteractionFlowModelElement #//Core/NamedElement">
      <eStructuralFeatures xsi:type="ecore:EAttribute" name="direction" ordered="false"
          lowerBound="1" eType="#//DataTypes/Direction" defaultValueLiteral="in"/>
      <eStructuralFeatures xsi:type="ecore:EReference" name="defaultValue" ordered="false"
          eType="#//Core/Expression"/>
      <eStructuralFeatures xsi:type="ecore:EReference" name="type" eType="ecore:EClass ../../org.eclipse.uml2.uml/model/UML.ecore#//Type"/>
    </eClassifiers>
    <eClassifiers xsi:type="ecore:EClass" name="DataBinding" eSuperTypes="#//Core/ContentBinding">
      <eStructuralFeatures xsi:type="ecore:EReference" name="conditionalExpression"
          ordered="false" upperBound="-1" eType="#//Core/ConditionalExpression" containment="true"/>
      <eStructuralFeatures xsi:type="ecore:EReference" name="visualizationAttribute"
          ordered="false" upperBound="-1" eType="#//Core/VisualizationAttribute" containment="true"/>
      <eStructuralFeatures xsi:type="ecore:EReference" name="dataContextVariables"
          ordered="false" upperBound="-1" eType="#//Core/DataContextVariable" eOpposite="#//Core/DataContextVariable/dataBinding"/>
      <eStructuralFeatures xsi:type="ecore:EReference" name="domainConcept" ordered="false"
          eType="#//Core/DomainConcept" eOpposite="#//Core/DomainConcept/dataBinding"/>
    </eClassifiers>
    <eClassifiers xsi:type="ecore:EClass" name="ConditionalExpression" eSuperTypes="#//Core/Expression #//Core/ViewComponentPart"/>
    <eClassifiers xsi:type="ecore:EClass" name="Context" eSuperTypes="#//Core/Element">
      <eStructuralFeatures xsi:type="ecore:EReference" name="contextDimensions" ordered="false"
          upperBound="-1" eType="#//Core/ContextDimension" containment="true"/>
      <eStructuralFeatures xsi:type="ecore:EReference" name="contextVariables" ordered="false"
          upperBound="-1" eType="#//Core/ContextVariable" containment="true" eOpposite="#//Core/ContextVariable/context"/>
    </eClassifiers>
    <eClassifiers xsi:type="ecore:EClass" name="VisualizationAttribute" eSuperTypes="#//Core/ViewComponentPart">
      <eStructuralFeatures xsi:type="ecore:EReference" name="featureConcept" ordered="false"
          lowerBound="1" eType="#//Core/FeatureConcept"/>
    </eClassifiers>
    <eClassifiers xsi:type="ecore:EClass" name="Event" eSuperTypes="#//Core/InteractionFlowElement">
      <eStructuralFeatures xsi:type="ecore:EReference" name="activationExpression"
          ordered="false" eType="#//Core/ActivationExpression"/>
      <eStructuralFeatures xsi:type="ecore:EReference" name="interactionFlowExpression"
          ordered="false" eType="#//Core/InteractionFlowExpression" containment="true"/>
    </eClassifiers>
    <eClassifiers xsi:type="ecore:EClass" name="InteractionFlowModelElement" abstract="true"
        eSuperTypes="#//Core/Element"/>
    <eClassifiers xsi:type="ecore:EClass" name="ViewElementEvent" eSuperTypes="#//Core/CatchingEvent">
      <eStructuralFeatures xsi:type="ecore:EReference" name="viewElement" ordered="false"
          lowerBound="1" eType="#//Core/ViewElement"/>
    </eClassifiers>
    <eClassifiers xsi:type="ecore:EClass" name="Annotation">
      <eStructuralFeatures xsi:type="ecore:EAttribute" name="text" ordered="false"
          lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
    </eClassifiers>
    <eClassifiers xsi:type="ecore:EClass" name="ModulePackage" eSuperTypes="#//Core/ModularizationElement">
      <eStructuralFeatures xsi:type="ecore:EReference" name="modularizationElements"
          ordered="false" upperBound="-1" eType="#//Core/ModularizationElement" containment="true"
          eOpposite="#//Core/ModularizationElement/modulePackage"/>
    </eClassifiers>
    <eClassifiers xsi:type="ecore:EClass" name="ModularizationElement" eSuperTypes="#//Core/NamedElement #//Core/InteractionFlowModelElement">
      <eStructuralFeatures xsi:type="ecore:EReference" name="modulePackage" ordered="false"
          eType="#//Core/ModulePackage" eOpposite="#//Core/ModulePackage/modularizationElements"/>
    </eClassifiers>
    <eClassifiers xsi:type="ecore:EClass" name="IFMLModule" eSuperTypes="#//Core/NamedElement #//Core/InteractionFlowElement">
      <eStructuralFeatures xsi:type="ecore:EReference" name="moduleDefinition" ordered="false"
          lowerBound="1" eType="#//Core/ModuleDefinition" eOpposite="#//Core/ModuleDefinition/modules"/>
      <eStructuralFeatures xsi:type="ecore:EReference" name="ports" ordered="false"
          upperBound="-1" eType="#//Core/IFMLPort" eOpposite="#//Core/IFMLPort/module"/>
    </eClassifiers>
    <eClassifiers xsi:type="ecore:EClass" name="IFMLPort" eSuperTypes="#//Core/InteractionFlowElement">
      <eStructuralFeatures xsi:type="ecore:EReference" name="portDefinition" ordered="false"
          lowerBound="1" eType="#//Core/PortDefinition" eOpposite="#//Core/PortDefinition/ports"/>
      <eStructuralFeatures xsi:type="ecore:EReference" name="module" ordered="false"
          lowerBound="1" eType="#//Core/IFMLModule" eOpposite="#//Core/IFMLModule/ports"/>
    </eClassifiers>
    <eClassifiers xsi:type="ecore:EClass" name="CatchingEvent" eSuperTypes="#//Core/Event"/>
    <eClassifiers xsi:type="ecore:EClass" name="ThrowingEvent" eSuperTypes="#//Core/Event"/>
    <eClassifiers xsi:type="ecore:EClass" name="BPMNActivityConcept" eSuperTypes="#//Core/ActivityConcept"/>
    <eClassifiers xsi:type="ecore:EClass" name="ContextVariable" eSuperTypes="#//Core/NamedElement">
      <eStructuralFeatures xsi:type="ecore:EReference" name="context" ordered="false"
          lowerBound="1" eType="#//Core/Context" eOpposite="#//Core/Context/contextVariables"/>
      <eStructuralFeatures xsi:type="ecore:EAttribute" name="scope" ordered="false"
          lowerBound="1" eType="#//DataTypes/ContextVariableScope"/>
    </eClassifiers>
    <eClassifiers xsi:type="ecore:EClass" name="SimpleContextVariable" eSuperTypes="#//Core/ContextVariable"/>
    <eClassifiers xsi:type="ecore:EClass" name="DataContextVariable" eSuperTypes="#//Core/ContextVariable">
      <eStructuralFeatures xsi:type="ecore:EReference" name="dataBinding" ordered="false"
          lowerBound="1" eType="#//Core/DataBinding" eOpposite="#//Core/DataBinding/dataContextVariables"/>
    </eClassifiers>
    <eClassifiers xsi:type="ecore:EClass" name="DomainConcept" eSuperTypes="#//Core/DomainElement">
      <eStructuralFeatures xsi:type="ecore:EReference" name="dataBinding" ordered="false"
          eType="#//Core/DataBinding" eOpposite="#//Core/DataBinding/domainConcept"/>
    </eClassifiers>
    <eClassifiers xsi:type="ecore:EClass" name="FeatureConcept" eSuperTypes="#//Core/DomainElement">
      <eStructuralFeatures xsi:type="ecore:EReference" name="visualizationAttribute"
          ordered="false" eType="#//Core/VisualizationAttribute"/>
    </eClassifiers>
    <eClassifiers xsi:type="ecore:EClass" name="BehaviorConcept" eSuperTypes="#//Core/DomainElement">
      <eStructuralFeatures xsi:type="ecore:EReference" name="dynamicBehavior" ordered="false"
          eType="#//Core/DynamicBehavior" eOpposite="#//Core/DynamicBehavior/behaviorConcept"/>
    </eClassifiers>
    <eClassifiers xsi:type="ecore:EClass" name="BehavioralFeatureConcept" eSuperTypes="#//Core/DomainElement">
      <eStructuralFeatures xsi:type="ecore:EReference" name="dynamicBehavior" ordered="false"
          lowerBound="1" eType="#//Core/DynamicBehavior" eOpposite="#//Core/DynamicBehavior/behavioralFeatureConcept"/>
    </eClassifiers>
    <eClassifiers xsi:type="ecore:EClass" name="UMLBehavior" eSuperTypes="#//Core/BehaviorConcept">
      <eStructuralFeatures xsi:type="ecore:EReference" name="behavior" ordered="false"
          eType="ecore:EClass ../../org.eclipse.uml2.uml/model/UML.ecore#//Behavior"/>
    </eClassifiers>
    <eClassifiers xsi:type="ecore:EClass" name="UMLBehavioralFeature" eSuperTypes="#//Core/BehavioralFeatureConcept">
      <eStructuralFeatures xsi:type="ecore:EReference" name="behavioralFeature" ordered="false"
          eType="ecore:EClass ../../org.eclipse.uml2.uml/model/UML.ecore#//BehavioralFeature"/>
    </eClassifiers>
    <eClassifiers xsi:type="ecore:EClass" name="UMLDomainConcept" eSuperTypes="#//Core/DomainConcept">
      <eStructuralFeatures xsi:type="ecore:EReference" name="classifier" ordered="false"
          eType="ecore:EClass ../../org.eclipse.uml2.uml/model/UML.ecore#//Classifier"/>
    </eClassifiers>
    <eClassifiers xsi:type="ecore:EClass" name="UMLStructuralFeature" eSuperTypes="#//Core/FeatureConcept">
      <eStructuralFeatures xsi:type="ecore:EReference" name="structuralFeature" ordered="false"
          eType="ecore:EClass ../../org.eclipse.uml2.uml/model/UML.ecore#//StructuralFeature"/>
    </eClassifiers>
    <eClassifiers xsi:type="ecore:EClass" name="ActivityConcept" eSuperTypes="#//Core/NamedElement">
      <eStructuralFeatures xsi:type="ecore:EReference" name="moduleDefinition" ordered="false"
          lowerBound="1" eType="#//Core/ModuleDefinition" eOpposite="#//Core/ModuleDefinition/activityConcept"/>
    </eClassifiers>
    <eClassifiers xsi:type="ecore:EClass" name="DomainElement" eSuperTypes="#//Core/NamedElement"/>
  </eSubpackages>
  <eSubpackages name="Extensions" nsURI="http://www.omg.org/spec/20130218/ext" nsPrefix="ext">
    <eClassifiers xsi:type="ecore:EClass" name="OnSubmitEvent" eSuperTypes="#//Core/ViewElementEvent"/>
    <eClassifiers xsi:type="ecore:EClass" name="ValidationRule" eSuperTypes="#//Core/Constraint"/>
    <eClassifiers xsi:type="ecore:EClass" name="List" eSuperTypes="#//Core/ViewComponent">
      <eStructuralFeatures xsi:type="ecore:EReference" name="selectEvent" ordered="false"
          upperBound="-1" eType="#//Extensions/OnSelectEvent" containment="true"/>
    </eClassifiers>
    <eClassifiers xsi:type="ecore:EClass" name="Position" eSuperTypes="#//Core/ContextDimension"/>
    <eClassifiers xsi:type="ecore:EClass" name="UserRole" eSuperTypes="#//Core/ContextDimension"/>
    <eClassifiers xsi:type="ecore:EClass" name="IFMLSlot" eSuperTypes="#//Core/ViewComponentPart #//Core/IFMLParameter"/>
    <eClassifiers xsi:type="ecore:EClass" name="OnSelectEvent" eSuperTypes="#//Core/ViewElementEvent"/>
    <eClassifiers xsi:type="ecore:EClass" name="Field" abstract="true" eSuperTypes="#//Core/ViewComponentPart #//Core/IFMLParameter"/>
    <eClassifiers xsi:type="ecore:EClass" name="Form" eSuperTypes="#//Core/ViewComponent"/>
    <eClassifiers xsi:type="ecore:EClass" name="Device" eSuperTypes="#//Core/ContextDimension"/>
    <eClassifiers xsi:type="ecore:EClass" name="SelectionField" eSuperTypes="#//Extensions/Field">
      <eStructuralFeatures xsi:type="ecore:EAttribute" name="isMultiSelection" ordered="false"
          lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
    </eClassifiers>
    <eClassifiers xsi:type="ecore:EClass" name="SimpleField" eSuperTypes="#//Extensions/Field"/>
    <eClassifiers xsi:type="ecore:EClass" name="Details" eSuperTypes="#//Core/ViewComponent"/>
    <eClassifiers xsi:type="ecore:EClass" name="IFMLWindow" eSuperTypes="#//Core/ViewContainer">
      <eStructuralFeatures xsi:type="ecore:EAttribute" name="isModal" ordered="false"
          lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
      <eStructuralFeatures xsi:type="ecore:EAttribute" name="isNewWindow" ordered="false"
          lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
    </eClassifiers>
    <eClassifiers xsi:type="ecore:EClass" name="OnLoadEvent" eSuperTypes="#//Core/SystemEvent"/>
    <eClassifiers xsi:type="ecore:EClass" name="IFMLMenu" eSuperTypes="#//Core/ViewContainer"/>
    <eClassifiers xsi:type="ecore:EClass" name="JumpEvent" eSuperTypes="#//Core/ThrowingEvent">
      <eStructuralFeatures xsi:type="ecore:EReference" name="landingEvent" ordered="false"
          eType="#//Extensions/LandingEvent" eOpposite="#//Extensions/LandingEvent/jumpingEvents"/>
    </eClassifiers>
    <eClassifiers xsi:type="ecore:EClass" name="LandingEvent" eSuperTypes="#//Core/CatchingEvent">
      <eStructuralFeatures xsi:type="ecore:EReference" name="jumpingEvents" ordered="false"
          upperBound="-1" eType="#//Extensions/JumpEvent" eOpposite="#//Extensions/JumpEvent/landingEvent"/>
    </eClassifiers>
    <eClassifiers xsi:type="ecore:EClass" name="SetContextEvent" eSuperTypes="#//Core/ThrowingEvent"/>
  </eSubpackages>
</ecore:EPackage>
magick93 commented 7 years ago

I tried again, with an even simpler model: selection_042

And again, it fails:

Starting MTC: MTC
Setting variable [output] value to: /home/anton/eclipse-workspaces/priceinsight/emfresttest/src/main/java
Setting variable [ecore_file] value to: /home/anton/eclipse-workspaces/priceinsight/emfresttest/src/main/resources/book.ecore
Setting variable [genModel_file] value to: /home/anton/eclipse-workspaces/priceinsight/emfresttest/src/main/resources/book.genmodel
Setting variable [output_js] value to: /home/anton/eclipse-workspaces/priceinsight/emfresttest/src/main/webapp/scripts
Setting variable [pluginName] value to: emfresttest
Setting variable [foreignModel] value to: book.ecore
Setting variable [modelName] value to: 
Setting variable [output_pom] value to: /home/anton/eclipse-workspaces/priceinsight/emfresttest
Initializing Model Environments.
Finished Model Environments Initialization.
Model ready : Ecore Fully Annotated(/home/anton/eclipse-workspaces/priceinsight/emfresttest/src/main/resources/book.ecore)
Executing Ecore -> JavaScript API transformation
Executing Ecore->Genmodel transformation
Executing Default Index transformation
Executing pom transformation
Exception executing Default Index transformation
java.lang.NullPointerException
    at com.emf.rest.standalone.PluginResourceLocator.getTarget(PluginResourceLocator.java:188)
    at com.mtcflow.engine.egl.EGLTransformationExecutor$1.createModule(EGLTransformationExecutor.java:51)
    at com.mtcflow.engine.epsilon.common.EpsilonExecutor.execute(EpsilonExecutor.java:93)
    at com.mtcflow.engine.egl.EGLTransformationExecutor.executeTransformation(EGLTransformationExecutor.java:88)
    at com.mtcflow.engine.core.MTCChoreographer$1.run(MTCChoreographer.java:628)
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
    at java.util.concurrent.FutureTask.run(FutureTask.java:266)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
    at java.lang.Thread.run(Thread.java:748)

Ecore -> JavaScript API transformation finished.
Model ready : GenModel(/home/anton/eclipse-workspaces/priceinsight/emfresttest/src/main/resources/book.genmodel)
Ecore->Genmodel transformation finished.
Executing GenerateEMF transformation
pom transformation finished.
Exception executing GenerateEMF transformation
java.lang.NullPointerException
    at org.eclipse.emf.codegen.ecore.genmodel.impl.GenPackageImpl$DependencyHelper.handle(GenPackageImpl.java:2490)
    at org.eclipse.emf.codegen.ecore.genmodel.impl.GenPackageImpl$DependencyHelper.<init>(GenPackageImpl.java:2422)
    at org.eclipse.emf.codegen.ecore.genmodel.impl.GenPackageImpl.prepareCache(GenPackageImpl.java:3220)
    at org.eclipse.emf.codegen.ecore.genmodel.generator.GenPackageGeneratorAdapter.doPreGenerate(GenPackageGeneratorAdapter.java:177)
    at org.eclipse.emf.codegen.ecore.generator.AbstractGeneratorAdapter.preGenerate(AbstractGeneratorAdapter.java:284)
    at org.eclipse.emf.codegen.ecore.generator.Generator.generate(Generator.java:700)
    at org.eclipse.emf.codegen.ecore.generator.Generator.generate(Generator.java:619)
    at com.emf.rest.EMFGenerator.executeTransformation(EMFGenerator.java:50)
    at com.mtcflow.engine.core.MTCChoreographer$1.run(MTCChoreographer.java:628)
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
    at java.util.concurrent.FutureTask.run(FutureTask.java:266)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
    at java.lang.Thread.run(Thread.java:748)

Its a shame. The goals of this product are really great! Its a shame its not maintained.

hamzaed commented 7 years ago

I would like to thank you for trying EMF-REST and I apologize for the late answer.

Regarding your last issue, I reproduced the same metamodel (with the abstract class AbstrackBook and the class ProductBook) and I was able to generate the code without problems. Please make sure you follow the steps mentioned in the tutorial.

Regarding the first issue, I see that you were trying to generate a REST API from the IFML metamodel taken from the IFML editor plugin. Unfortunately, EMF-REST doesn't support subpackages and multi packages for the moment. Your metamodel also imports some elements from another metamodel located in the workspace (the UML metamodel) which is also not supported (I added a known issues file explaining the actual limitations of EMF-REST). Some workarounds should be done on this metamodel to make the code generation work.

Feel free to send me mail for further assistance.

Hamza

magick93 commented 7 years ago

Hello

I can still reproduce this, with a super simple model:

package books

class Book{
    String name
    String subject
}

You can see in the following screencast the steps I am doing. If I understand correctly, I am following the steps in your tutorial. Please see https://youtu.be/LufZNBka-E8

hamzaed commented 7 years ago

Hi again,

You're not following the steps of "How to use the plugin" explained in the link. I see that your ecore file is in an Empty EMF project and not a Maven project as required by the plugin (see step 1). The file should also be under the folder /src/main/resources (see step 2).

Please make sure to follow the steps correctly.

Hamza

magick93 commented 7 years ago

Hi Hamza

Yes you are right. Not using maven project type was a fundamental mistake. I also used xcore - I assume that should be ok.

I have tried again. This time using a maven project. However I still get a NPE. You can see a new video example at https://youtu.be/12lAhQM3Fn4

Thanks

hamzaed commented 7 years ago

I've just reproduced the error. It seems that Xcore is causing the problem. The ecore file generated by Xcore uses a relative path to the project org.eclipse.emf.ecore to reference the EString element of the Ecore metamodel (i.e.,../../org.eclipse.emf.ecore/model/Ecore.ecore#//EString"/) which is not supported by emf-rest (this will also cause problems if you move your ecore file to another directory). A quick fix will be to change the relative path to a URI (i.e., http://www.eclipse.org/emf/2002/Ecore#//EString).

I was able to generate the different classes peacefully after this tweak.

Hamza

magick93 commented 7 years ago

Thanks Hamza

The ecore file generated by Xcore uses a relative path to the project org.eclipse.emf.ecore to reference the EString...

Does that mean that this issue - of relative types - will be for any types used in the xcore file?

hamzaed commented 7 years ago

Yes. For any type taken from the Ecore metamodel.

hernanponcedeleon commented 6 years ago

Hello, I have the same problem with an even simpler ecore file which I create from scratch from eclipse:

<?xml version="1.0" encoding="UTF-8"?>
<ecore:EPackage xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore"
    name=""/>

I don't have any relative path here and I uses the URI as you suggested, however I still get errors when I try to generate all:

Starting MTC: MTC
Setting variable [output] value to: /home/ponce/Downloads/eclipse/ws/demo/src/main/java
Setting variable [ecore_file] value to: /home/ponce/Downloads/eclipse/ws/demo/src/main/resources/My.ecore
Setting variable [genModel_file] value to: /home/ponce/Downloads/eclipse/ws/demo/src/main/resources/My.genmodel
Setting variable [output_js] value to: /home/ponce/Downloads/eclipse/ws/demo/src/main/webapp/scripts
Setting variable [pluginName] value to: demo
Setting variable [foreignModel] value to: My.ecore
Setting variable [modelName] value to: 
Setting variable [output_pom] value to: /home/ponce/Downloads/eclipse/ws/demo
Initializing Model Environments.
Finished Model Environments Initialization.
Model ready : Ecore Fully Annotated(/home/ponce/Downloads/eclipse/ws/demo/src/main/resources/My.ecore)
Executing Ecore -> JavaScript API transformation
Executing Ecore->Genmodel transformation
Executing Default Index transformation
Executing pom transformation
Exception executing Default Index transformation
Exception executing Ecore->Genmodel transformation
Ecore -> JavaScript API transformation finished.
pom transformation finished.
java.lang.NullPointerException
    at com.emf.rest.standalone.PluginResourceLocator.getTarget(PluginResourceLocator.java:188)
    at com.mtcflow.engine.egl.EGLTransformationExecutor$1.createModule(EGLTransformationExecutor.java:51)
    at com.mtcflow.engine.epsilon.common.EpsilonExecutor.execute(EpsilonExecutor.java:93)
    at com.mtcflow.engine.egl.EGLTransformationExecutor.executeTransformation(EGLTransformationExecutor.java:88)
    at com.mtcflow.engine.core.MTCChoreographer$1.run(MTCChoreographer.java:628)
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
    at java.util.concurrent.FutureTask.run(FutureTask.java:266)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
    at java.lang.Thread.run(Thread.java:748)

Internal error: java.lang.StringIndexOutOfBoundsException: String index out of range: 1
    at java.lang.String.substring[String.java:1963]
    at org.eclipse.epsilon.eol.execute.operations.contributors.StringOperationContributor.firstToUpperCase[StringOperationContributor.java:41]
    at sun.reflect.NativeMethodAccessorImpl.invoke0[Native Method]
    at sun.reflect.NativeMethodAccessorImpl.invoke[NativeMethodAccessorImpl.java:62]
    at sun.reflect.DelegatingMethodAccessorImpl.invoke[DelegatingMethodAccessorImpl.java:43]
    at java.lang.reflect.Method.invoke[Method.java:498]
    at org.eclipse.epsilon.eol.util.ReflectionUtil.executeMethod[ReflectionUtil.java:175]
    at org.eclipse.epsilon.eol.util.ReflectionUtil.executeMethod[ReflectionUtil.java:157]
    at org.eclipse.epsilon.eol.execute.PointExecutor.executeOperation[PointExecutor.java:154]
    at org.eclipse.epsilon.eol.execute.PointExecutor.execute[PointExecutor.java:75]
    at org.eclipse.epsilon.eol.execute.PointExecutor.execute[PointExecutor.java:44]
    at org.eclipse.epsilon.eol.execute.PointExecutor.execute[PointExecutor.java:90]
    at org.eclipse.epsilon.eol.execute.ExecutorFactory.executeAST[ExecutorFactory.java:226]
    at org.eclipse.epsilon.eol.execute.ParametersExecutor.execute[ParametersExecutor.java:29]
    at org.eclipse.epsilon.eol.execute.ExecutorFactory.executeAST[ExecutorFactory.java:226]
    at org.eclipse.epsilon.eol.execute.PointExecutor.executeOperation[PointExecutor.java:131]
    at org.eclipse.epsilon.eol.execute.PointExecutor.execute[PointExecutor.java:75]
    at org.eclipse.epsilon.eol.execute.PointExecutor.execute[PointExecutor.java:44]
    at org.eclipse.epsilon.eol.execute.PointExecutor.execute[PointExecutor.java:90]
    at org.eclipse.epsilon.eol.execute.ExecutorFactory.executeAST[ExecutorFactory.java:226]
    at org.eclipse.epsilon.eol.execute.AssignExecutor.execute[AssignExecutor.java:48]
    at org.eclipse.epsilon.eol.execute.ExecutorFactory.executeAST[ExecutorFactory.java:226]
    at org.eclipse.epsilon.eol.execute.ExecutorFactory.executeAST[ExecutorFactory.java:196]
    at org.eclipse.epsilon.eol.execute.StatementBlockExecutor.execute[StatementBlockExecutor.java:26]
    at org.eclipse.epsilon.eol.execute.ExecutorFactory.executeAST[ExecutorFactory.java:226]
    at org.eclipse.epsilon.erl.ErlModule.execute[ErlModule.java:88]
    at org.eclipse.epsilon.etl.EtlModule.execute[EtlModule.java:122]
    at com.mtcflow.engine.epsilon.common.EpsilonExecutor.execute[EpsilonExecutor.java:136]
    at com.mtcflow.engine.epsilon.common.EpsilonExecutor.execute[EpsilonExecutor.java:126]
    at com.mtcflow.engine.etl.ETLTransformationExecutor.executeTransformation[ETLTransformationExecutor.java:81]
    at com.mtcflow.engine.core.MTCChoreographer$1.run[MTCChoreographer.java:628]
    at java.util.concurrent.Executors$RunnableAdapter.call[Executors.java:511]
    at java.util.concurrent.FutureTask.run[FutureTask.java:266]
    at java.util.concurrent.ThreadPoolExecutor.runWorker[ThreadPoolExecutor.java:1149]
    at java.util.concurrent.ThreadPoolExecutor$Worker.run[ThreadPoolExecutor.java:624]
    at java.lang.Thread.run[Thread.java:748]
 (/home/ponce/Downloads/eclipse/plugins/emf-rest_1.0.3.201503272048/transformations/M2M/Ecore2GenModel.etl@8:81)
    at java.lang.String.substring(String.java:1963)
    at org.eclipse.epsilon.eol.execute.operations.contributors.StringOperationContributor.firstToUpperCase(StringOperationContributor.java:41)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:498)
    at org.eclipse.epsilon.eol.util.ReflectionUtil.executeMethod(ReflectionUtil.java:175)
    at org.eclipse.epsilon.eol.util.ReflectionUtil.executeMethod(ReflectionUtil.java:157)
    at org.eclipse.epsilon.eol.execute.PointExecutor.executeOperation(PointExecutor.java:154)
    at org.eclipse.epsilon.eol.execute.PointExecutor.execute(PointExecutor.java:75)
    at org.eclipse.epsilon.eol.execute.PointExecutor.execute(PointExecutor.java:44)
    at org.eclipse.epsilon.eol.execute.PointExecutor.execute(PointExecutor.java:90)
    at org.eclipse.epsilon.eol.execute.ExecutorFactory.executeAST(ExecutorFactory.java:226)
    at org.eclipse.epsilon.eol.execute.ParametersExecutor.execute(ParametersExecutor.java:29)
    at org.eclipse.epsilon.eol.execute.ExecutorFactory.executeAST(ExecutorFactory.java:226)
    at org.eclipse.epsilon.eol.execute.PointExecutor.executeOperation(PointExecutor.java:131)
    at org.eclipse.epsilon.eol.execute.PointExecutor.execute(PointExecutor.java:75)
    at org.eclipse.epsilon.eol.execute.PointExecutor.execute(PointExecutor.java:44)
    at org.eclipse.epsilon.eol.execute.PointExecutor.execute(PointExecutor.java:90)
    at org.eclipse.epsilon.eol.execute.ExecutorFactory.executeAST(ExecutorFactory.java:226)
    at org.eclipse.epsilon.eol.execute.AssignExecutor.execute(AssignExecutor.java:48)
    at org.eclipse.epsilon.eol.execute.ExecutorFactory.executeAST(ExecutorFactory.java:226)
    at org.eclipse.epsilon.eol.execute.ExecutorFactory.executeAST(ExecutorFactory.java:196)
    at org.eclipse.epsilon.eol.execute.StatementBlockExecutor.execute(StatementBlockExecutor.java:26)
    at org.eclipse.epsilon.eol.execute.ExecutorFactory.executeAST(ExecutorFactory.java:226)
    at org.eclipse.epsilon.erl.ErlModule.execute(ErlModule.java:88)
    at org.eclipse.epsilon.etl.EtlModule.execute(EtlModule.java:122)
    at com.mtcflow.engine.epsilon.common.EpsilonExecutor.execute(EpsilonExecutor.java:136)
    at com.mtcflow.engine.epsilon.common.EpsilonExecutor.execute(EpsilonExecutor.java:126)
    at com.mtcflow.engine.etl.ETLTransformationExecutor.executeTransformation(ETLTransformationExecutor.java:81)
    at com.mtcflow.engine.core.MTCChoreographer$1.run(MTCChoreographer.java:628)
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
    at java.util.concurrent.FutureTask.run(FutureTask.java:266)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
    at java.lang.Thread.run(Thread.java:748)
Caused by: java.lang.StringIndexOutOfBoundsException: String index out of range: 1
    ... 36 more