Search in sources :

Example 26 with ServiceOperation

use of org.talend.repository.services.model.services.ServiceOperation in project tesb-studio-se by Talend.

the class ESBService method copyDataServiceRelateJob.

@Override
public void copyDataServiceRelateJob(Item newItem) {
    if (newItem instanceof ServiceItem) {
        ServiceItem serviceItem = (ServiceItem) newItem;
        ServiceConnection serviceConnection = (ServiceConnection) serviceItem.getConnection();
        List<ServicePort> ports = serviceConnection.getServicePort();
        for (ServicePort port : ports) {
            List<ServiceOperation> operations = port.getServiceOperation();
            for (ServiceOperation operation : operations) {
                String referenceJobId = operation.getReferenceJobId();
                if (referenceJobId != null && !referenceJobId.equals("")) {
                    IRepositoryViewObject jobObj = null;
                    try {
                        jobObj = ProxyRepositoryFactory.getInstance().getLastVersion(referenceJobId);
                    } catch (PersistenceException e) {
                        ExceptionHandler.process(e);
                    }
                    if (jobObj == null) {
                        continue;
                    }
                    ProcessItem processItem = (ProcessItem) jobObj.getProperty().getItem();
                    String initNameValue = "Copy_of_" + processItem.getProperty().getLabel();
                    final IPath path = RepositoryNodeUtilities.getPath(processItem.getProperty().getId());
                    String jobNameValue = null;
                    try {
                        jobNameValue = getDuplicateName(RepositoryNodeUtilities.getRepositoryNode(jobObj), initNameValue);
                    } catch (BusinessException e) {
                        //$NON-NLS-1$
                        jobNameValue = "";
                    }
                    Item newProcessItem = copyJobForService(processItem, path, jobNameValue);
                    String operationLabel = operation.getLabel();
                    if (operationLabel.contains("-")) {
                        String[] array = operationLabel.split("-");
                        operation.setLabel(array[0] + "-" + jobNameValue);
                    }
                    // update nodes in newProcessItem
                    updateNodesInNewProcessItem(newProcessItem, serviceItem, port, operation);
                    operation.setReferenceJobId(newProcessItem.getProperty().getId());
                    try {
                        ProxyRepositoryFactory.getInstance().save(serviceItem);
                    } catch (PersistenceException e) {
                        ExceptionHandler.process(e);
                    }
                }
            }
        }
    }
}
Also used : ServicePort(org.talend.repository.services.model.services.ServicePort) ServiceConnection(org.talend.repository.services.model.services.ServiceConnection) IPath(org.eclipse.core.runtime.IPath) ServiceOperation(org.talend.repository.services.model.services.ServiceOperation) 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) BusinessException(org.talend.commons.exception.BusinessException) ProcessItem(org.talend.core.model.properties.ProcessItem) IRepositoryViewObject(org.talend.core.model.repository.IRepositoryViewObject) PersistenceException(org.talend.commons.exception.PersistenceException) ServiceItem(org.talend.repository.services.model.services.ServiceItem)

Aggregations

ServiceOperation (org.talend.repository.services.model.services.ServiceOperation)26 ServicePort (org.talend.repository.services.model.services.ServicePort)26 ServiceConnection (org.talend.repository.services.model.services.ServiceConnection)25 ServiceItem (org.talend.repository.services.model.services.ServiceItem)17 PersistenceException (org.talend.commons.exception.PersistenceException)15 IRepositoryViewObject (org.talend.core.model.repository.IRepositoryViewObject)12 IProxyRepositoryFactory (org.talend.repository.model.IProxyRepositoryFactory)10 IRepositoryNode (org.talend.repository.model.IRepositoryNode)6 ProcessItem (org.talend.core.model.properties.ProcessItem)5 IFile (org.eclipse.core.resources.IFile)4 ConnectionItem (org.talend.core.model.properties.ConnectionItem)4 Item (org.talend.core.model.properties.Item)4 RepositoryNode (org.talend.repository.model.RepositoryNode)4 ArrayList (java.util.ArrayList)3 CoreException (org.eclipse.core.runtime.CoreException)3 INode (org.talend.core.model.process.INode)3 IProcess2 (org.talend.core.model.process.IProcess2)3 IOException (java.io.IOException)2 HashMap (java.util.HashMap)2 Operation (javax.wsdl.Operation)2