use of org.talend.repository.services.model.services.ServiceConnection 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.repository.services.model.services.ServiceConnection in project tesb-studio-se by Talend.
the class ESBService method getServiceLabel.
@Override
public String getServiceLabel(Item item, String linkedRepository) {
String serviceName = item.getProperty().getLabel();
if (item instanceof ServiceItem) {
String[] ids = linkedRepository.split(" - ");
ServiceConnection serConn = (ServiceConnection) ((ServiceItem) item).getConnection();
if (ids.length == 3) {
String portName = "";
String operationName = "";
EList<ServicePort> portList = serConn.getServicePort();
out: for (ServicePort port : portList) {
if (port.getId().equals(ids[1])) {
portName = port.getName();
EList<ServiceOperation> opeList = port.getServiceOperation();
for (ServiceOperation ope : opeList) {
if (ope.getId().equals(ids[2])) {
operationName = ope.getName();
return serviceName + " - " + portName + " - " + operationName;
}
}
}
}
}
}
return serviceName;
}
use of org.talend.repository.services.model.services.ServiceConnection 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);
}
}
}
}
}
}
Aggregations