package org.jbpm.migration.tools; import java.io.File; import java.io.IOException; import org.apache.commons.io.FileUtils; import org.jbpm.migration.JbpmMigration; /** * JPDL -> BPMN2 definition migration. Calls migration tool, which executes xslt * template transformation. */ public class MigrationHelper { /** * Migration from JPDL to BPMN2 format. * * @param jpdlFile * File with process definition in JPDL. * @param bpmnFile * File which should contain process definition in BPMN after * migration. * @throws IllegalArgumentException * if Jpdl or Bpmn2 definition file is not valid. */ public static void migration(File jpdlFile, File bpmnFile) { String jpdlStr; try { jpdlStr = FileUtils.readFileToString(jpdlFile); } catch (IOException ex) { throw new RuntimeException(ex); } if (!JbpmMigration.validateJpdl(jpdlStr)) { throw new IllegalArgumentException("JPDL definition file is not valid"); } String bpmnStr = JbpmMigration.transform(jpdlStr); try { FileUtils.writeStringToFile(bpmnFile, bpmnStr); } catch (IOException ex) { throw new RuntimeException(ex); } if (!JbpmMigration.validateBpmn(bpmnStr)) { throw new IllegalArgumentException("BPMN2 definition file is not valid"); } } }