Search in sources :

Example 31 with IProxyRepositoryFactory

use of org.talend.repository.model.IProxyRepositoryFactory in project tdi-studio-se by Talend.

the class AbstractStandardJobBuildProviderTest method createJobItem.

protected Item createJobItem() throws PersistenceException {
    final IProxyRepositoryFactory repositoryFactory = DesignerPlugin.getDefault().getRepositoryService().getProxyRepositoryFactory();
    final String testJobId = repositoryFactory.getNextId();
    final String testJobLabel = StandardJobStandaloneBuildProvider.class.getSimpleName() + System.currentTimeMillis();
    // copied from NewProcessWizard
    Property property = PropertiesFactory.eINSTANCE.createProperty();
    property.setAuthor(((RepositoryContext) CorePlugin.getContext().getProperty(Context.REPOSITORY_CONTEXT_KEY)).getUser());
    property.setVersion(VersionUtils.DEFAULT_VERSION);
    property.setStatusCode("");
    property.setId(testJobId);
    property.setDisplayName(testJobLabel);
    property.setLabel(property.getDisplayName());
    ProcessItem processItem = PropertiesFactory.eINSTANCE.createProcessItem();
    processItem.setProperty(property);
    property.setItem(processItem);
    ProcessType process = TalendFileFactory.eINSTANCE.createProcessType();
    ParametersType parameterType = TalendFileFactory.eINSTANCE.createParametersType();
    List<RoutinesParameterType> dependenciesInPreference = RoutinesUtil.createDependenciesInPreference();
    parameterType.getRoutinesParameter().addAll(dependenciesInPreference);
    process.setParameters(parameterType);
    processItem.setProcess(process);
    repositoryFactory.create(processItem, new Path(""));
    return processItem;
}
Also used : Path(org.eclipse.core.runtime.Path) ProcessType(org.talend.designer.core.model.utils.emf.talendfile.ProcessType) ProcessItem(org.talend.core.model.properties.ProcessItem) RoutinesParameterType(org.talend.designer.core.model.utils.emf.talendfile.RoutinesParameterType) ParametersType(org.talend.designer.core.model.utils.emf.talendfile.ParametersType) Property(org.talend.core.model.properties.Property) IProxyRepositoryFactory(org.talend.repository.model.IProxyRepositoryFactory)

Example 32 with IProxyRepositoryFactory

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

the class CreateRouteResourceAction method init.

@Override
public void init(TreeViewer viewer, IStructuredSelection selection) {
    boolean canWork = !selection.isEmpty() && selection.size() == 1;
    IProxyRepositoryFactory factory = ProxyRepositoryFactory.getInstance();
    if (factory.isUserReadOnlyOnCurrentProject()) {
        canWork = false;
    }
    if (canWork) {
        Object o = selection.getFirstElement();
        RepositoryNode node = (RepositoryNode) o;
        switch(node.getType()) {
            case SIMPLE_FOLDER:
            case SYSTEM_FOLDER:
                ERepositoryObjectType nodeType = (ERepositoryObjectType) node.getProperties(EProperties.CONTENT_TYPE);
                if (nodeType != CamelRepositoryNodeType.repositoryRouteResourceType) {
                    canWork = false;
                }
                if (node.getObject() != null && node.getObject().isDeleted()) {
                    canWork = false;
                }
                break;
            default:
                canWork = false;
        }
        if (canWork && !ProjectManager.getInstance().isInCurrentMainProject(node)) {
            canWork = false;
        }
    }
    setEnabled(canWork);
}
Also used : RepositoryNode(org.talend.repository.model.RepositoryNode) IRepositoryNode(org.talend.repository.model.IRepositoryNode) ERepositoryObjectType(org.talend.core.model.repository.ERepositoryObjectType) IProxyRepositoryFactory(org.talend.repository.model.IProxyRepositoryFactory)

Example 33 with IProxyRepositoryFactory

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

the class LocalWSDLEditor method saveModel.

private void saveModel() throws CoreException {
    IProxyRepositoryFactory factory = ProxyRepositoryFactory.getInstance();
    Definition definition = WSDLUtils.getDefinition(serviceItem);
    // changed for TDI-18005
    Map<String, String> portNameIdMap = new HashMap<String, String>();
    Map<String, EMap<String, String>> portAdditionalMap = new HashMap<String, EMap<String, String>>();
    Map<String, String> operNameIdMap = new HashMap<String, String>();
    Map<String, String> operJobMap = new HashMap<String, String>();
    EList<ServicePort> oldServicePorts = ((ServiceConnection) serviceItem.getConnection()).getServicePort();
    // get old service port item names and operation names under them
    HashMap<String, ArrayList<String>> oldPortItemNames = new HashMap<String, ArrayList<String>>();
    for (ServicePort servicePort : oldServicePorts) {
        // keep id
        portNameIdMap.put(servicePort.getName(), servicePort.getId());
        // keep additional infos
        portAdditionalMap.put(servicePort.getId(), servicePort.getAdditionalInfo());
        EList<ServiceOperation> operations = servicePort.getServiceOperation();
        ArrayList<String> operationNames = new ArrayList<String>();
        for (ServiceOperation operation : operations) {
            operNameIdMap.put(operation.getName(), operation.getId());
            operationNames.add(operation.getLabel());
            // record assigned job
            operJobMap.put(operation.getId(), operation.getReferenceJobId());
        }
        oldPortItemNames.put(servicePort.getName(), operationNames);
    }
    ((ServiceConnection) serviceItem.getConnection()).getServicePort().clear();
    for (Object obj : definition.getAllPortTypes().values()) {
        PortType portType = (PortType) obj;
        if (portType.isUndefined()) {
            continue;
        }
        ServicePort port = ServicesFactory.eINSTANCE.createServicePort();
        String portName = portType.getQName().getLocalPart();
        port.setName(portName);
        // set port id
        String id = portNameIdMap.get(portName);
        if (id != null) {
            port.setId(id);
            // restore additional infos
            port.getAdditionalInfo().putAll(portAdditionalMap.get(id));
        } else {
            port.setId(factory.getNextId());
        }
        @SuppressWarnings("unchecked") List<Operation> list = portType.getOperations();
        for (Operation operation : list) {
            if (operation.isUndefined()) {
                // means the operation has been removed already ,why ?
                continue;
            }
            ServiceOperation serviceOperation = ServicesFactory.eINSTANCE.createServiceOperation();
            serviceOperation.setName(operation.getName());
            Iterator<String> operationIterator = operNameIdMap.keySet().iterator();
            while (operationIterator.hasNext()) {
                String oldOperationName = operationIterator.next();
                String operationId = operNameIdMap.get(oldOperationName);
                if (oldOperationName.equals(operation.getName())) {
                    serviceOperation.setId(operationId);
                    // re-assign job
                    String jobId = operJobMap.get(operationId);
                    if (jobId != null) {
                        serviceOperation.setReferenceJobId(jobId);
                    }
                }
            }
            if (serviceOperation.getId() == null || serviceOperation.getId().equals("")) {
                serviceOperation.setId(factory.getNextId());
            }
            if (operation.getDocumentationElement() != null) {
                serviceOperation.setDocumentation(operation.getDocumentationElement().getTextContent());
            }
            boolean hasAssignedjob = false;
            ArrayList<String> operationNames = oldPortItemNames.get(portName);
            String referenceJobId = serviceOperation.getReferenceJobId();
            if (operationNames != null && referenceJobId != null) {
                IRepositoryViewObject repObj = null;
                try {
                    repObj = factory.getLastVersion(referenceJobId);
                } catch (PersistenceException e) {
                    ExceptionHandler.process(e);
                }
                if (repObj != null) {
                    for (String name : operationNames) {
                        if (name.equals(operation.getName() + '-' + repObj.getLabel())) {
                            serviceOperation.setLabel(name);
                            hasAssignedjob = true;
                            break;
                        }
                    }
                }
            }
            if (!hasAssignedjob) {
                serviceOperation.setLabel(operation.getName());
            }
            serviceOperation.setInBinding(WSDLUtils.isOperationInBinding(definition, portName, operation.getName()));
            port.getServiceOperation().add(serviceOperation);
        }
        ((ServiceConnection) serviceItem.getConnection()).getServicePort().add(port);
    }
}
Also used : ServicePort(org.talend.repository.services.model.services.ServicePort) ServiceConnection(org.talend.repository.services.model.services.ServiceConnection) HashMap(java.util.HashMap) Definition(javax.wsdl.Definition) ArrayList(java.util.ArrayList) ServiceOperation(org.talend.repository.services.model.services.ServiceOperation) Operation(javax.wsdl.Operation) ServiceOperation(org.talend.repository.services.model.services.ServiceOperation) EMap(org.eclipse.emf.common.util.EMap) IRepositoryViewObject(org.talend.core.model.repository.IRepositoryViewObject) PersistenceException(org.talend.commons.exception.PersistenceException) EObject(org.eclipse.emf.ecore.EObject) IRepositoryViewObject(org.talend.core.model.repository.IRepositoryViewObject) IProxyRepositoryFactory(org.talend.repository.model.IProxyRepositoryFactory) PortType(javax.wsdl.PortType)

Example 34 with IProxyRepositoryFactory

use of org.talend.repository.model.IProxyRepositoryFactory in project tdi-studio-se by Talend.

the class JobJavaScriptsManager method collectRoutinesFromRepository.

private Collection<IRepositoryViewObject> collectRoutinesFromRepository(Set<String> allRoutinesNames, ERepositoryObjectType type) {
    IProxyRepositoryFactory factory = CorePlugin.getDefault().getProxyRepositoryFactory();
    List<IRepositoryViewObject> toReturn = new ArrayList<IRepositoryViewObject>();
    try {
        List<IRepositoryViewObject> availableRoutines = factory.getAll(ProjectManager.getInstance().getCurrentProject(), type);
        for (IRepositoryViewObject object : availableRoutines) {
            if (allRoutinesNames.contains(object.getLabel())) {
                allRoutinesNames.remove(object.getLabel());
                toReturn.add(object);
            }
        }
        if (allRoutinesNames.isEmpty()) {
            return toReturn;
        }
        for (org.talend.core.model.general.Project project : ProjectManager.getInstance().getAllReferencedProjects()) {
            for (IRepositoryViewObject object : factory.getAll(project, type)) {
                if (allRoutinesNames.contains(object.getLabel())) {
                    allRoutinesNames.remove(object.getLabel());
                    toReturn.add(object);
                }
            }
            if (allRoutinesNames.isEmpty()) {
                return toReturn;
            }
        }
    } catch (PersistenceException e) {
        ExceptionHandler.process(e);
        toReturn.addAll(RoutinesUtil.getCurrentSystemRoutines());
    }
    return toReturn;
}
Also used : ArrayList(java.util.ArrayList) IRepositoryViewObject(org.talend.core.model.repository.IRepositoryViewObject) PersistenceException(org.talend.commons.exception.PersistenceException) IProxyRepositoryFactory(org.talend.repository.model.IProxyRepositoryFactory)

Example 35 with IProxyRepositoryFactory

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

the class CreateCamelProcess method init.

@Override
public void init(TreeViewer viewer, IStructuredSelection selection) {
    boolean canWork = !selection.isEmpty() && selection.size() == 1;
    IProxyRepositoryFactory factory = ProxyRepositoryFactory.getInstance();
    if (factory.isUserReadOnlyOnCurrentProject()) {
        canWork = false;
    }
    if (canWork) {
        IRepositoryNode node = (IRepositoryNode) selection.getFirstElement();
        switch(node.getType()) {
            case SIMPLE_FOLDER:
            case SYSTEM_FOLDER:
                ERepositoryObjectType nodeType = (ERepositoryObjectType) node.getProperties(EProperties.CONTENT_TYPE);
                if (nodeType != null && !nodeType.equals(getProcessType()) && !nodeType.equals(CamelRepositoryNodeType.repositoryRouteDesinsType)) {
                    canWork = false;
                }
                if (node.getObject() != null && node.getObject().isDeleted()) {
                    canWork = false;
                }
                break;
            default:
                canWork = false;
        }
        if (canWork && !ProjectManager.getInstance().isInCurrentMainProject(node)) {
            canWork = false;
        }
    }
    setEnabled(canWork);
}
Also used : IRepositoryNode(org.talend.repository.model.IRepositoryNode) ERepositoryObjectType(org.talend.core.model.repository.ERepositoryObjectType) IProxyRepositoryFactory(org.talend.repository.model.IProxyRepositoryFactory)

Aggregations

IProxyRepositoryFactory (org.talend.repository.model.IProxyRepositoryFactory)194 PersistenceException (org.talend.commons.exception.PersistenceException)118 IRepositoryViewObject (org.talend.core.model.repository.IRepositoryViewObject)72 Item (org.talend.core.model.properties.Item)49 Property (org.talend.core.model.properties.Property)36 ArrayList (java.util.ArrayList)35 ConnectionItem (org.talend.core.model.properties.ConnectionItem)33 RepositoryNode (org.talend.repository.model.RepositoryNode)31 ProcessItem (org.talend.core.model.properties.ProcessItem)26 CoreException (org.eclipse.core.runtime.CoreException)21 IElementParameter (org.talend.core.model.process.IElementParameter)21 IRepositoryService (org.talend.repository.model.IRepositoryService)21 Connection (org.talend.core.model.metadata.builder.connection.Connection)20 DatabaseConnection (org.talend.core.model.metadata.builder.connection.DatabaseConnection)20 ERepositoryObjectType (org.talend.core.model.repository.ERepositoryObjectType)19 List (java.util.List)18 IFile (org.eclipse.core.resources.IFile)17 Project (org.talend.core.model.general.Project)15 RoutineItem (org.talend.core.model.properties.RoutineItem)15 IDynamicProperty (org.talend.core.ui.properties.tab.IDynamicProperty)15