use of org.talend.designer.core.IDesignerCoreService in project tesb-studio-se by Talend.
the class AssignJobAction method changeOldJob.
public void changeOldJob() {
String operationName = repositoryNode.getObject().getLabel();
String portName = repositoryNode.getParent().getObject().getLabel();
ServiceItem serviceItem = (ServiceItem) repositoryNode.getParent().getParent().getObject().getProperty().getItem();
List<ServicePort> listPort = ((ServiceConnection) serviceItem.getConnection()).getServicePort();
String oldJobID = null;
for (ServicePort port : listPort) {
if (port.getName().equals(portName)) {
List<ServiceOperation> listOperation = port.getServiceOperation();
for (ServiceOperation operation : listOperation) {
if (operation.getLabel().equals(operationName)) {
oldJobID = operation.getReferenceJobId();
break;
}
}
break;
}
}
IProxyRepositoryFactory factory = ProxyRepositoryFactory.getInstance();
try {
if (oldJobID != null) {
IRepositoryViewObject object = factory.getLastVersion(oldJobID);
Item item = object.getProperty().getItem();
ProcessItem processItem = (ProcessItem) item;
//
IDesignerCoreService service = CorePlugin.getDefault().getDesignerCoreService();
IProcess2 process = null;
IEditorReference[] reference = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage().getEditorReferences();
List<IProcess2> processes = RepositoryPlugin.getDefault().getDesignerCoreService().getOpenedProcess(reference);
for (IProcess2 processOpen : processes) {
if (processOpen.getProperty().getItem() == processItem) {
process = processOpen;
break;
}
}
if (process == null) {
IProcess proc = service.getProcessFromProcessItem(processItem);
if (proc instanceof IProcess2) {
process = (IProcess2) proc;
}
}
if (process != null) {
List<? extends INode> nodelist = process.getGraphicalNodes();
for (INode node : nodelist) {
if (node.getComponent().getName().equals("tESBProviderRequest")) {
repositoryChangeToBuildIn(repositoryNode, node);
}
}
processItem.setProcess(process.saveXmlFile());
factory.save(processItem);
}
}
} catch (PersistenceException | IOException e) {
ExceptionHandler.process(e);
}
}
use of org.talend.designer.core.IDesignerCoreService in project tesb-studio-se by Talend.
the class CreateMavenBundlePom method getProcessor.
public static IProcessor getProcessor(JobInfo jobInfo) {
if (jobInfo.getProcessor() != null) {
return jobInfo.getProcessor();
}
IProcess process = null;
ProcessItem processItem;
processItem = jobInfo.getProcessItem();
if (processItem == null && jobInfo.getJobVersion() == null) {
processItem = ItemCacheManager.getProcessItem(jobInfo.getJobId());
}
if (processItem == null && jobInfo.getJobVersion() != null) {
processItem = ItemCacheManager.getProcessItem(jobInfo.getJobId(), jobInfo.getJobVersion());
}
if (processItem == null && jobInfo.getProcess() == null) {
return null;
}
if (jobInfo.getProcess() == null) {
if (processItem != null) {
IDesignerCoreService service = CorePlugin.getDefault().getDesignerCoreService();
process = service.getProcessFromProcessItem(processItem);
if (process instanceof IProcess2) {
((IProcess2) process).setProperty(processItem.getProperty());
}
}
if (process == null) {
return null;
}
} else {
process = jobInfo.getProcess();
}
Property curProperty = processItem.getProperty();
if (processItem.getProperty() == null && process instanceof IProcess2) {
curProperty = ((IProcess2) process).getProperty();
}
IRunProcessService service = CorePlugin.getDefault().getRunProcessService();
IProcessor processor = service.createCodeProcessor(process, curProperty, ((RepositoryContext) CorePlugin.getContext().getProperty(Context.REPOSITORY_CONTEXT_KEY)).getProject().getLanguage(), true);
jobInfo.setProcessor(processor);
return processor;
}
Aggregations