Search in sources :

Example 51 with IDesignerCoreService

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);
    }
}
Also used : ServicePort(org.talend.repository.services.model.services.ServicePort) ServiceConnection(org.talend.repository.services.model.services.ServiceConnection) INode(org.talend.core.model.process.INode) ServiceOperation(org.talend.repository.services.model.services.ServiceOperation) IOException(java.io.IOException) Item(org.talend.core.model.properties.Item) ConnectionItem(org.talend.core.model.properties.ConnectionItem) ServiceItem(org.talend.repository.services.model.services.ServiceItem) ProcessItem(org.talend.core.model.properties.ProcessItem) IEditorReference(org.eclipse.ui.IEditorReference) ProcessItem(org.talend.core.model.properties.ProcessItem) IRepositoryViewObject(org.talend.core.model.repository.IRepositoryViewObject) IProcess2(org.talend.core.model.process.IProcess2) PersistenceException(org.talend.commons.exception.PersistenceException) ServiceItem(org.talend.repository.services.model.services.ServiceItem) IDesignerCoreService(org.talend.designer.core.IDesignerCoreService) IProcess(org.talend.core.model.process.IProcess) IProxyRepositoryFactory(org.talend.repository.model.IProxyRepositoryFactory)

Example 52 with IDesignerCoreService

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;
}
Also used : RepositoryContext(org.talend.core.context.RepositoryContext) ProcessItem(org.talend.core.model.properties.ProcessItem) IRunProcessService(org.talend.designer.runprocess.IRunProcessService) IProcess2(org.talend.core.model.process.IProcess2) IDesignerCoreService(org.talend.designer.core.IDesignerCoreService) IProcessor(org.talend.designer.runprocess.IProcessor) IProcess(org.talend.core.model.process.IProcess) ActivationProperty(org.apache.maven.model.ActivationProperty) Property(org.talend.core.model.properties.Property)

Aggregations

IDesignerCoreService (org.talend.designer.core.IDesignerCoreService)52 IProcess (org.talend.core.model.process.IProcess)27 ProcessItem (org.talend.core.model.properties.ProcessItem)22 ArrayList (java.util.ArrayList)16 INode (org.talend.core.model.process.INode)13 Item (org.talend.core.model.properties.Item)13 PersistenceException (org.talend.commons.exception.PersistenceException)11 List (java.util.List)10 IRepositoryViewObject (org.talend.core.model.repository.IRepositoryViewObject)9 IProxyRepositoryFactory (org.talend.repository.model.IProxyRepositoryFactory)9 IOException (java.io.IOException)8 IProcess2 (org.talend.core.model.process.IProcess2)8 HashSet (java.util.HashSet)6 IFile (org.eclipse.core.resources.IFile)6 IElementParameter (org.talend.core.model.process.IElementParameter)6 Process (org.talend.designer.core.ui.editor.process.Process)6 IProcessor (org.talend.designer.runprocess.IProcessor)6 IRunProcessService (org.talend.designer.runprocess.IRunProcessService)6 HashMap (java.util.HashMap)5 IEditorReference (org.eclipse.ui.IEditorReference)5