I am trying to implement my own constraint class, MyConstraint, by extending the IConstraint class. The class is implemented in the UMLCopy project within the package pkg.cs.
Following the MTF User Guide, I created an ecore file, within which an EDataType. I set the instance class of the EDataType to be pkg.cs.MyConstraint.
I included the ecore file to my rule file and I tried to run the mapping. However, I have a problem with loading my constraint class.
The error message I got in the log file looks like:
!ENTRY com.ibm.mtf.engine 4 1 2009-06-17 17:10:01.697
!MESSAGE Exception thrown
!STACK 0
Wrapped exception
java.lang.ClassNotFoundException: pkg.cs.MyConstraint
at org.eclipse.osgi.framework.internal.core.BundleLoader.findClass(BundleLoader.java:405)
at org.eclipse.osgi.framework.internal.core.BundleLoader.findClass(BundleLoader.java:350)
at org.eclipse.osgi.framework.adaptor.core.AbstractClassLoader.loadClass(AbstractClassLoader.java:78)
at java.lang.ClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClassInternal(Unknown Source)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Unknown Source)
at org.eclipse.emf.ecore.impl.EClassifierImpl.getClassForName(EClassifierImpl.java:434)
at org.eclipse.emf.ecore.impl.EClassifierImpl.getInstanceClass(EClassifierImpl.java:411)
at org.eclipse.emf.ecore.impl.EFactoryImpl.createFromString(EFactoryImpl.java:297)
at org.eclipse.emf.ecore.util.EcoreUtil.createFromString(EcoreUtil.java:2439)
at com.ibm.mtf.relations.impl.MappingDefinitionImpl.compile(MappingDefinitionImpl.java:515)
at com.ibm.mtf.mapping.engine.impl.EqualityNodeImpl.build(EqualityNodeImpl.java:257)
at com.ibm.mtf.mapping.engine.impl.RelationNodeImpl.build(RelationNodeImpl.java:272)
at com.ibm.mtf.mapping.engine.impl.MappingEngineImpl.buildRelationNode(MappingEngineImpl.java:598)
at com.ibm.mtf.mapping.engine.impl.MappingEngineImpl.build(MappingEngineImpl.java:582)
at com.ibm.mtf.mapping.engine.impl.MappingEngineImpl.build(MappingEngineImpl.java:511)
at com.ibm.mtf.mapping.engine.impl.MappingEngineImpl.setMappingContext(MappingEngineImpl.java:1074)
at com.ibm.mtf.mapping.engine.impl.MappingEngineImpl.map(MappingEngineImpl.java:625)
at com.ibm.mtf.mapping.engine.util.TransformationOperation.runInWorkspace(TransformationOperation.java:62)
at org.eclipse.core.internal.resources.InternalWorkspaceJob.run(InternalWorkspaceJob.java:38)
at org.eclipse.core.internal.jobs.Worker.run(Worker.java:76)
Wrapped by
org.eclipse.emf.common.util.WrappedException: pkg.cs.MyConstraint
at org.eclipse.emf.ecore.impl.EClassifierImpl.getInstanceClass(EClassifierImpl.java:419)
at org.eclipse.emf.ecore.impl.EFactoryImpl.createFromString(EFactoryImpl.java:297)
at org.eclipse.emf.ecore.util.EcoreUtil.createFromString(EcoreUtil.java:2439)
at com.ibm.mtf.relations.impl.MappingDefinitionImpl.compile(MappingDefinitionImpl.java:515)
at com.ibm.mtf.mapping.engine.impl.EqualityNodeImpl.build(EqualityNodeImpl.java:257)
at com.ibm.mtf.mapping.engine.impl.RelationNodeImpl.build(RelationNodeImpl.java:272)
at com.ibm.mtf.mapping.engine.impl.MappingEngineImpl.buildRelationNode(MappingEngineImpl.java:598)
at com.ibm.mtf.mapping.engine.impl.MappingEngineImpl.build(MappingEngineImpl.java:582)
at com.ibm.mtf.mapping.engine.impl.MappingEngineImpl.build(MappingEngineImpl.java:511)
at com.ibm.mtf.mapping.engine.impl.MappingEngineImpl.setMappingContext(MappingEngineImpl.java:1074)
at com.ibm.mtf.mapping.engine.impl.MappingEngineImpl.map(MappingEngineImpl.java:625)
at com.ibm.mtf.mapping.engine.util.TransformationOperation.runInWorkspace(TransformationOperation.java:62)
at org.eclipse.core.internal.resources.InternalWorkspaceJob.run(InternalWorkspaceJob.java:38)
at org.eclipse.core.internal.jobs.Worker.run(Worker.java:76)
It seems there is a problem with the way I set the instance class for my EDataType. Can anyone help me with this?