В случае, если кто-то наткнется на это.
Да, это можно сделать с помощью BPEL Model .
Вот пример кода, который генерирует довольно тривиальныйФайл BPEL:
public Process createBPEL()
{
Process process = null;
BPELFactory factory = BPELFactory.eINSTANCE;
try
{
ResourceSet rSet = new ResourceSetImpl();
rSet.getResourceFactoryRegistry().getExtensionToFactoryMap()
.put("bpel", new BPELResourceFactoryImpl());
File file = new File("myfile.bpel");
file.createNewFile();
String filePath = file.getAbsolutePath();
System.out.println(filePath);
AdapterRegistry.INSTANCE.registerAdapterFactory( BPELPackage.eINSTANCE, BasicBPELAdapterFactory.INSTANCE );
Resource resource = rSet.createResource(URI.createFileURI(filePath));
process = factory.createProcess();
process.setName("FirstBPEL");
Sequence seq = factory.createSequence();
seq.setName("MainSequence");
Receive recieve = factory.createReceive();
PortType portType = new PortTypeProxy(URI.createURI("http://baseuri"), new QName("qname"));
Operation operation = new OperationProxy(URI.createURI("http://localhost"), portType , "operation_name");
recieve.setOperation(operation);
Invoke invoke = factory.createInvoke();
invoke.setOperation(operation);
While whiles = factory.createWhile();
If if_st = factory.createIf();
List<Activity> activs = new ArrayList<Activity>();
activs.add(recieve);
activs.add(invoke);
activs.add(if_st);
activs.add(whiles);
seq.getActivities().addAll(activs);
process.setActivity(seq);
resource.getContents().add(process);
Map<String,String> map = new HashMap<String, String>();
map.put("bpel", "http://docs.oasis-open.org/wsbpel/2.0/process/executable");
map.put("xsd", "http://www.w3.org/2001/XMLSchema");
resource.save(map);
}
catch(Exception e)
{
e.printStackTrace();
}
return process;
}
Зависимости требуют добавления следующих файлов jar в путь сборки проекта из папки plugins в каталоге установки eclipse:
- org.eclipse.bpel.model _ *. Jar
- org.eclipse.wst.wsdl _ *. Jar
- org.eclipse.emf.common _ *. Jar
- org.eclipse.emf.ecore _ *. jar
- org.eclipse.emf.ecore.xmi _ *. jar
- javax.wsdl _ *. jar
- org.apache.xerces _ *. jar
- org.eclipse.bpel.common.model _ *. jar
- org.eclipse.xsd _ *. jar
- org.eclipse.core.resources_* .jar
- org.eclipse.osgi _ *. jar
- org.eclipse.core.runtime _ *. jar
- org.eclipse.equinox.common _ *. jar
- org.eclipse.core.jobs _ *. Jar
- org.eclipse.core.runtime.compatibility _ *. Jar