Using Coreservice to run ATL transformatin in java [message #1053431] |
Sun, 05 May 2013 14:27 |
yesheng chai Messages: 64 Registered: March 2013 |
Member |
|
|
hello,
I want to run ATL transformation in java by using Coreservice.The following is my code :
public class UML2PN1 {
private IInjector injector;
private IExtractor extractor;
private IReferenceModel umlMetamodel;
private IReferenceModel PetrinetMetamodel;
private URL asmURL;
public static void main(String[] args)
{
UML2PN1 runner = new UML2PN1();
runner.run();
}
public void run(){
try{
asmURL = UML2PN1.class.getResource("src/UML2PN1.asm");
System.out.println(CoreService.getInjectorsNames() );
ILauncher launcher = null;
launcher = CoreService.getLauncher(
ATLLaunchConstants.EMF_VM_NAME); //$NON-NLS-1$
launcher.initialize(Collections.<String, Object> emptyMap());
ModelFactory factory = CoreService.getModelFactory(launcher.getDefaultModelFactoryName()); //$NON-NLS-1$
injector = CoreService.getInjector(factory.getDefaultExtractorName()); //$NON-NLS-1$
extractor = CoreService.getExtractor(factory.getDefaultExtractorName()); //$NON-NLS-1$
umlMetamodel = factory.newReferenceModel();
injector.inject(umlMetamodel, "http://www.eclipse.org/uml2/4.0.0/UML"); //$NON-NLS-1$
PetrinetMetamodel = factory.newReferenceModel(); //$NON-NLS-1$
injector.inject(PetrinetMetamodel, "src/PetriNets");
IModel petrinetModel = factory.newModel(PetrinetMetamodel);
IModel umlModel = factory.newModel(umlMetamodel);
injector.inject(umlModel, "src/model.uml");
launcher.addOutModel(petrinetModel, "OUT", "PetriNets"); //$NON-NLS-1$ //$NON-NLS-2$
launcher.addInOutModel(umlModel, "IN", "UML"); //$NON-NLS-1$ //$NON-NLS-2$
launcher.launch(ILauncher.RUN_MODE, new NullProgressMonitor(), Collections.<String, Object> emptyMap(), asmURL.openStream());
extractor.extract(umlModel, "src/1.xmi");
} catch (ATLCoreException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} catch (ATLExecutionException e) {
e.printStackTrace();
}
}
}
the error is:
org.eclipse.m2m.atl.core.launcher EMF-specific VM not found, check the spelling or register it manually
at org.eclipse.m2m.atl.core.service.CoreService.getLauncher(CoreService.java:214)
How to solve my problem?
|
|
|
|
|
|
Powered by
FUDForum. Page generated in 0.03158 seconds