Search in sources :

Example 16 with WSDataModel

use of com.amalto.workbench.webservices.WSDataModel in project tmdm-studio-se by Talend.

the class DataModelMainPage method importSchema.

protected void importSchema(InputSource source, String uri) throws Exception {
    // $NON-NLS-1$
    String ns = "";
    DocumentBuilderFactory documentBuilderFactory = DocumentBuilderFactory.newInstance();
    documentBuilderFactory.setNamespaceAware(true);
    documentBuilderFactory.setValidating(false);
    DocumentBuilder documentBuilder = documentBuilderFactory.newDocumentBuilder();
    Document document = documentBuilder.parse(source);
    // $NON-NLS-1$
    ns = document.getDocumentElement().getAttribute("targetNamespace");
    if (xsdSchema == null) {
        xsdSchema = getXSDSchema(Util.nodeToString(document));
    } else {
        WSDataModel wsObject = (WSDataModel) (xobject.getWsObject());
        xsdSchema = Util.createXsdSchema(wsObject.getXsdSchema(), xobject);
    }
    boolean exist = false;
    for (int i = 0; i < xsdSchema.getContents().size(); i++) {
        XSDSchemaContent xsdComp = xsdSchema.getContents().get(i);
        if (ns != null && !ns.equals("")) {
            // import xsdschema
            if (xsdComp instanceof XSDImport && ((XSDImport) xsdComp).getNamespace().equals(ns)) {
                for (Map.Entry entry : xsdSchema.getQNamePrefixToNamespaceMap().entrySet()) {
                    if (entry.getValue().equals(((XSDImport) xsdComp).getNamespace())) {
                        exist = true;
                        break;
                    }
                }
                break;
            }
        } else {
            // include xsdschema
            if (xsdComp instanceof XSDInclude) {
                String xsdLocation = ((XSDInclude) xsdComp).getSchemaLocation();
                if (xsdLocation.equals(uri)) {
                    exist = true;
                    break;
                }
            }
        }
    }
    if (!exist) {
        if (ns != null && !ns.equals("")) {
            // $NON-NLS-1$
            // $NON-NLS-1$
            int last = ns.lastIndexOf("/");
            // $NON-NLS-1$//$NON-NLS-2$
            xsdSchema.getQNamePrefixToNamespaceMap().put(ns.substring(last + 1).replaceAll("[\\W]", ""), ns);
            XSDImport xsdImport = XSDFactory.eINSTANCE.createXSDImport();
            xsdImport.setNamespace(ns);
            xsdImport.setSchemaLocation(uri);
            xsdSchema.getContents().add(0, xsdImport);
        } else {
            XSDInclude xsdInclude = XSDFactory.eINSTANCE.createXSDInclude();
            xsdInclude.setSchemaLocation(uri);
            xsdSchema.getContents().add(0, xsdInclude);
        }
        String xsd = Util.nodeToString(xsdSchema.getDocument());
        setXsdSchema(xsdSchema);
        WSDataModel wsObject = (WSDataModel) (xobject.getWsObject());
        wsObject.setXsdSchema(xsd);
    }
}
Also used : WSDataModel(com.amalto.workbench.webservices.WSDataModel) DocumentBuilderFactory(javax.xml.parsers.DocumentBuilderFactory) DocumentBuilder(javax.xml.parsers.DocumentBuilder) XSDSchemaContent(org.eclipse.xsd.XSDSchemaContent) XSDImport(org.eclipse.xsd.XSDImport) Document(org.w3c.dom.Document) Map(java.util.Map) HashMap(java.util.HashMap) XSDInclude(org.eclipse.xsd.XSDInclude)

Example 17 with WSDataModel

use of com.amalto.workbench.webservices.WSDataModel in project tmdm-studio-se by Talend.

the class DataModelMainPage method refreshData.

private void refreshData() {
    try {
        WSDataModel wsObject = (WSDataModel) (xobject.getWsObject());
        String s;
        // $NON-NLS-1$
        s = wsObject.getDescription() == null ? "" : wsObject.getDescription();
        if (!s.equals(desAntionComposite.getText())) {
            desAntionComposite.setText(s);
        }
        String schema = Util.formatXsdSource(wsObject.getXsdSchema());
        XSDSchema xsd = Util.createXsdSchema(schema, xobject);
        xsdSchema = xsd;
        schemaTreeContentProvider.setXsdSchema(xsd);
        getSchemaRoleFilterFromSchemaTree().setDataModelFilter(dataModelFilter);
        viewer.setInput(getSite());
        // refresh types
        typesTreeContentProvider.setXsdSchema(xsd);
        typesViewer.setInput(getSite());
        reConfigureXSDSchema(true);
    } catch (Exception e) {
        log.error(e.getMessage(), e);
        ErrorExceptionDialog.openError(this.getSite().getShell(), "Error refreshing the page", // $NON-NLS-1$//$NON-NLS-2$
        "Error refreshing the page: " + e.getLocalizedMessage());
    }
}
Also used : WSDataModel(com.amalto.workbench.webservices.WSDataModel) CoreException(org.eclipse.core.runtime.CoreException) PartInitException(org.eclipse.ui.PartInitException) SAXParseException(org.xml.sax.SAXParseException) XSDSchema(org.eclipse.xsd.XSDSchema)

Example 18 with WSDataModel

use of com.amalto.workbench.webservices.WSDataModel in project tmdm-studio-se by Talend.

the class XSDEditorUtil method createFile.

public static IFile createFile(TreeObject xobject) throws Exception {
    WSDataModel wsDataModel = (WSDataModel) xobject.getWsObject();
    if (wsDataModel == null) {
        return null;
    }
    // $NON-NLS-1$//$NON-NLS-2$//$NON-NLS-3$
    String filename = xobject.getDisplayName().replace(" ", "") + ".xsd";
    String content = wsDataModel.getXsdSchema();
    IProject project = createProject(xobject);
    String path = getXObjectPath(xobject);
    int pos = path.indexOf('/');
    String folder = path.substring(0, pos);
    IFolder fold = project.getFolder(folder);
    if (!fold.exists()) {
        fold.create(true, true, null);
    }
    IFile file = fold.getFile(filename);
    if (!file.exists()) {
        // $NON-NLS-1$
        file.create(new ByteArrayInputStream(content.getBytes("utf-8")), IFile.FORCE, null);
    } else {
        sycFileContents(file, content);
    }
    return file;
}
Also used : WSDataModel(com.amalto.workbench.webservices.WSDataModel) IFile(org.eclipse.core.resources.IFile) ByteArrayInputStream(java.io.ByteArrayInputStream) IProject(org.eclipse.core.resources.IProject) IFolder(org.eclipse.core.resources.IFolder)

Example 19 with WSDataModel

use of com.amalto.workbench.webservices.WSDataModel in project tmdm-studio-se by Talend.

the class XMLEditor method refresh.

public void refresh() {
    state = -1;
    WSDataModel wsObject = (WSDataModel) (xobject.getWsObject());
    IDocument doc = ((XMLEditorInput) this.getEditorInput()).getDocument();
    wsObject.setXsdSchema(doc.get());
}
Also used : WSDataModel(com.amalto.workbench.webservices.WSDataModel) IDocument(org.eclipse.jface.text.IDocument)

Example 20 with WSDataModel

use of com.amalto.workbench.webservices.WSDataModel in project tmdm-studio-se by Talend.

the class XtentisServerObjectsRetriever method run.

public synchronized void run(IProgressMonitor monitor) throws InvocationTargetException, InterruptedException {
    try {
        if (password == null || password.length() == 0) {
            throw new Exception(Messages.XtentisServerObjectsRetriever_0);
        }
        monitor.beginTask(Messages.bind(Messages.XtentisServerObjectsRetriever_1, IConstants.TALEND), Messages.XtentisServerObjectsRetriever_3.equals(username) ? 12 : 9);
        // server
        serverRoot = new TreeParent(serverName, null, TreeObject._SERVER_, endpointaddress, username + ":" + // $NON-NLS-1$//$NON-NLS-2$
        (password == null ? "" : password));
        // init load category
        monitor.subTask(Messages.XtentisServerObjectsRetriever_4);
        LocalTreeObjectRepository.getInstance().startUp(endpointaddress, username, password);
        LocalTreeObjectRepository.getInstance().switchOnListening();
        LocalTreeObjectRepository.getInstance().setLazySaveStrategy(true, serverRoot);
        monitor.worked(1);
        // Access to server and get port
        TMDMService service = Util.getMDMService(new URL(endpointaddress), username, password);
        // viewer user can't use studio
        service.ping(new WSPing(Messages.XtentisServerObjectsRetriever_5));
        monitor.worked(1);
        // fetch version info
        try {
            WSVersion version = service.getComponentVersion(new WSGetComponentVersion(WSComponent.DATA_MANAGER, null));
            String versionStr = // $NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
            version.getMajor() + "." + version.getMinor() + "." + version.getRevision() + "_" + version.getBuild();
            // $NON-NLS-1$
            log.info("Server version = " + versionStr);
        } catch (Exception e) {
            log.error(e.getMessage(), e);
        }
        if (monitor.isCanceled()) {
            throw new InterruptedException(Messages.XtentisServerObjectsRetriever_6);
        }
        monitor.subTask(Messages.XtentisServerObjectsRetriever_7);
        UserInfo user = new UserInfo();
        user.setUsername(username);
        user.setPassword(password);
        user.setServerUrl(endpointaddress);
        serverRoot.setUser(user);
        // String uriPre=serverRoot.getEndpointIpAddress();
        // Data Models
        TreeParent models = new TreeParent(EXtentisObjects.DataMODEL.getDisplayName(), serverRoot, TreeObject.DATA_MODEL, null, null);
        List<WSDataModelPK> xdmPKs = null;
        try {
            // $NON-NLS-1$
            xdmPKs = service.getDataModelPKs(new WSRegexDataModelPKs("")).getWsDataModelPKs();
        } catch (Exception e) {
            log.error(e.getMessage(), e);
        }
        if (xdmPKs != null) {
            monitor.subTask(Messages.XtentisServerObjectsRetriever_8);
            for (WSDataModelPK pk : xdmPKs) {
                String name = pk.getPk();
                if (!name.startsWith("XMLSCHEMA")) {
                    // $NON-NLS-1$
                    WSDataModel wsobj = null;
                    if (retriveWSObject) {
                        wsobj = service.getDataModel(new WSGetDataModel(pk));
                    }
                    TreeObject obj = new TreeObject(name, serverRoot, TreeObject.DATA_MODEL, pk, wsobj);
                    models.addChild(obj);
                }
            }
        }
        monitor.worked(1);
        if (monitor.isCanceled()) {
            throw new InterruptedException(Messages.XtentisServerObjectsRetriever_9);
        }
        // DataClusters
        TreeParent dataClusters = new TreeParent(EXtentisObjects.DataCluster.getDisplayName(), serverRoot, TreeObject.DATA_CLUSTER, null, null);
        List<WSDataClusterPK> xdcPKs = null;
        try {
            // $NON-NLS-1$
            xdcPKs = service.getDataClusterPKs(new WSRegexDataClusterPKs("*")).getWsDataClusterPKs();
        } catch (Exception e) {
            log.error(e.getMessage(), e);
        }
        if (xdcPKs != null) {
            monitor.subTask(Messages.XtentisServerObjectsRetriever_10);
            for (WSDataClusterPK pk : xdcPKs) {
                String name = pk.getPk();
                if (!("CACHE".equals(name))) {
                    // FIXME: Hardcoded CACHE//$NON-NLS-1$
                    WSDataCluster wsObject = null;
                    try {
                        if (retriveWSObject) {
                            wsObject = service.getDataCluster(new WSGetDataCluster(pk));
                        }
                        TreeObject obj = new TreeObject(name, serverRoot, TreeObject.DATA_CLUSTER, pk, wsObject);
                        dataClusters.addChild(obj);
                    } catch (Exception e) {
                        log.error(e.getMessage(), e);
                    }
                }
            }
        }
        monitor.worked(1);
        if (monitor.isCanceled()) {
            throw new InterruptedException(Messages.XtentisServerObjectsRetriever_11);
        }
        // event management
        TreeParent eventManagement = new TreeParent(EXtentisObjects.EventManagement.getDisplayName(), serverRoot, TreeObject.EVENT_MANAGEMENT, null, null);
        // subscript engine
        TreeObject engine = new TreeObject(EXtentisObjects.SubscriptionEngine.getDisplayName(), serverRoot, TreeObject.SUBSCRIPTION_ENGINE, null, null);
        eventManagement.addChild(engine);
        // transformer
        List<WSTransformerV2PK> transformerPKs = null;
        try {
            // $NON-NLS-1$
            transformerPKs = service.getTransformerV2PKs(new WSGetTransformerV2PKs("")).getWsTransformerV2PK();
        } catch (Exception e) {
            log.error(e.getMessage(), e);
        }
        TreeParent transformers = null;
        transformers = new TreeParent(EXtentisObjects.Transformer.getDisplayName(), serverRoot, TreeObject.TRANSFORMER, null, null);
        eventManagement.addChild(transformers);
        if (transformerPKs != null) {
            monitor.subTask(Messages.XtentisServerObjectsRetriever_12);
            for (WSTransformerV2PK pk : transformerPKs) {
                String id = pk.getPk();
                WSTransformerV2 wsobject = null;
                if (retriveWSObject) {
                    wsobject = service.getTransformerV2(new WSGetTransformerV2(pk));
                }
                TreeObject obj = new TreeObject(id, serverRoot, TreeObject.TRANSFORMER, new WSTransformerV2PK(id), wsobject);
                transformers.addChild(obj);
            }
        }
        monitor.worked(1);
        // routing rule
        List<WSRoutingRulePK> routingRulePKs = null;
        try {
            // $NON-NLS-1$
            routingRulePKs = service.getRoutingRulePKs(new WSGetRoutingRulePKs("")).getWsRoutingRulePKs();
        } catch (Exception e) {
            log.error(e.getMessage(), e);
        }
        TreeParent rules = null;
        rules = new TreeParent(EXtentisObjects.RoutingRule.getDisplayName(), serverRoot, TreeObject.ROUTING_RULE, null, null);
        eventManagement.addChild(rules);
        if (routingRulePKs != null) {
            monitor.subTask(Messages.XtentisServerObjectsRetriever_13);
            for (WSRoutingRulePK pk : routingRulePKs) {
                String id = pk.getPk();
                WSRoutingRule wsobject = null;
                if (retriveWSObject) {
                    wsobject = service.getRoutingRule(new WSGetRoutingRule(pk));
                }
                TreeObject obj = new TreeObject(id, serverRoot, TreeObject.ROUTING_RULE, new WSRoutingRulePK(id), wsobject);
                rules.addChild(obj);
            }
        }
        monitor.worked(1);
        // add event management to serverRoot
        serverRoot.addChild(eventManagement);
        // Views
        TreeParent views = new TreeParent(EXtentisObjects.View.getDisplayName(), serverRoot, TreeObject.VIEW, null, null);
        List<WSViewPK> viewPKs = null;
        try {
            // $NON-NLS-1$
            viewPKs = service.getViewPKs((new WSGetViewPKs(""))).getWsViewPK();
        } catch (Exception e) {
            log.error(e.getMessage(), e);
        }
        if (viewPKs != null) {
            monitor.subTask(Messages.XtentisServerObjectsRetriever_14);
            for (WSViewPK pk : viewPKs) {
                String name = pk.getPk();
                WSView wsobject = null;
                if (retriveWSObject) {
                    wsobject = service.getView(new WSGetView(pk));
                }
                TreeObject obj = new TreeObject(name, serverRoot, TreeObject.VIEW, new WSViewPK(name), wsobject);
                views.addChild(obj);
            }
        }
        monitor.worked(1);
        if (monitor.isCanceled()) {
            throw new InterruptedException(Messages.XtentisServerObjectsRetriever_15);
        }
        // Stored Procedures
        TreeParent storedProcedures = new TreeParent(EXtentisObjects.StoredProcedure.getDisplayName(), serverRoot, TreeObject.STORED_PROCEDURE, null, null);
        List<WSStoredProcedurePK> spk = null;
        try {
            // $NON-NLS-1$
            spk = service.getStoredProcedurePKs(new WSRegexStoredProcedure("")).getWsStoredProcedurePK();
        } catch (Exception e) {
            log.error(e.getMessage(), e);
        }
        if (spk != null) {
            monitor.subTask(Messages.XtentisServerObjectsRetriever_16);
            for (WSStoredProcedurePK pk : spk) {
                String name = pk.getPk();
                WSStoredProcedure wsobject = null;
                if (retriveWSObject) {
                    wsobject = service.getStoredProcedure(new WSGetStoredProcedure(pk));
                }
                TreeObject obj = new TreeObject(name, serverRoot, TreeObject.STORED_PROCEDURE, new WSStoredProcedurePK(name), wsobject);
                storedProcedures.addChild(obj);
            }
        }
        monitor.worked(1);
        if (monitor.isCanceled()) {
            throw new InterruptedException(Messages.XtentisServerObjectsRetriever_17);
        }
        // Service Configuration
        TreeObject serviceConfiguration = new TreeObject(EXtentisObjects.ServiceConfiguration.getDisplayName(), serverRoot, TreeObject.SERVICE_CONFIGURATION, null, null);
        // serviceConfiguration.setXObject(false);
        monitor.worked(1);
        if (monitor.isCanceled()) {
            throw new InterruptedException(Messages.XtentisServerObjectsRetriever_18);
        }
        // Menus
        List<WSMenuPK> menuPKs = null;
        boolean hasMenus = true;
        try {
            // $NON-NLS-1$
            menuPKs = service.getMenuPKs(new WSGetMenuPKs("*")).getWsMenuPK();
        } catch (Exception e) {
            log.error(e.getMessage(), e);
            // This server IS old
            hasMenus = false;
        }
        TreeParent menus = null;
        if (hasMenus) {
            menus = new TreeParent(EXtentisObjects.Menu.getDisplayName(), serverRoot, TreeObject.MENU, null, null);
            if (menuPKs != null) {
                monitor.subTask(Messages.XtentisServerObjectsRetriever_19);
                for (WSMenuPK pk : menuPKs) {
                    String id = pk.getPk();
                    WSMenu wsobject = null;
                    try {
                        if (retriveWSObject) {
                            wsobject = service.getMenu(new WSGetMenu(pk));
                        }
                        TreeObject obj = new TreeObject(id, serverRoot, TreeObject.MENU, new WSMenuPK(id), wsobject);
                        menus.addChild(obj);
                    } catch (Exception e) {
                        log.error(e.getMessage(), e);
                    }
                }
            }
            monitor.worked(1);
            if (monitor.isCanceled()) {
                throw new InterruptedException(Messages.XtentisServerObjectsRetriever_20);
            }
        }
        // move Job from EE to CE.
        monitor.worked(1);
        serverRoot.addChild(models);
        serverRoot.addChild(dataClusters);
        serverRoot.addChild(views);
        serverRoot.addChild(storedProcedures);
        serverRoot.addChild(serviceConfiguration);
        if (hasMenus) {
            serverRoot.addChild(menus);
        }
        // available models
        List<IAvailableModel> availablemodels = AvailableModelUtil.getAvailableModels();
        for (IAvailableModel model : availablemodels) {
            model.addTreeObjects(service, monitor, serverRoot);
        }
        monitor.done();
    } catch (Exception e) {
        if (monitor.isCanceled()) {
            throw new InterruptedException(Messages.XtentisServerObjectsRetriever_21);
        }
        log.error(e.getMessage(), e);
        throw new InvocationTargetException(e);
    }
}
Also used : WSStoredProcedurePK(com.amalto.workbench.webservices.WSStoredProcedurePK) WSView(com.amalto.workbench.webservices.WSView) WSGetDataModel(com.amalto.workbench.webservices.WSGetDataModel) WSDataClusterPK(com.amalto.workbench.webservices.WSDataClusterPK) TMDMService(com.amalto.workbench.webservices.TMDMService) WSGetMenuPKs(com.amalto.workbench.webservices.WSGetMenuPKs) WSRoutingRule(com.amalto.workbench.webservices.WSRoutingRule) WSRegexDataModelPKs(com.amalto.workbench.webservices.WSRegexDataModelPKs) WSGetView(com.amalto.workbench.webservices.WSGetView) WSGetComponentVersion(com.amalto.workbench.webservices.WSGetComponentVersion) WSGetMenu(com.amalto.workbench.webservices.WSGetMenu) WSRoutingRulePK(com.amalto.workbench.webservices.WSRoutingRulePK) WSGetRoutingRulePKs(com.amalto.workbench.webservices.WSGetRoutingRulePKs) WSVersion(com.amalto.workbench.webservices.WSVersion) InvocationTargetException(java.lang.reflect.InvocationTargetException) WSGetDataCluster(com.amalto.workbench.webservices.WSGetDataCluster) WSTransformerV2(com.amalto.workbench.webservices.WSTransformerV2) WSTransformerV2PK(com.amalto.workbench.webservices.WSTransformerV2PK) TreeObject(com.amalto.workbench.models.TreeObject) WSRegexDataClusterPKs(com.amalto.workbench.webservices.WSRegexDataClusterPKs) WSDataModelPK(com.amalto.workbench.webservices.WSDataModelPK) WSViewPK(com.amalto.workbench.webservices.WSViewPK) WSGetStoredProcedure(com.amalto.workbench.webservices.WSGetStoredProcedure) WSPing(com.amalto.workbench.webservices.WSPing) WSMenuPK(com.amalto.workbench.webservices.WSMenuPK) TreeParent(com.amalto.workbench.models.TreeParent) WSGetTransformerV2(com.amalto.workbench.webservices.WSGetTransformerV2) UserInfo(com.amalto.workbench.utils.UserInfo) URL(java.net.URL) WSGetTransformerV2PKs(com.amalto.workbench.webservices.WSGetTransformerV2PKs) WSDataCluster(com.amalto.workbench.webservices.WSDataCluster) WSStoredProcedure(com.amalto.workbench.webservices.WSStoredProcedure) IAvailableModel(com.amalto.workbench.availablemodel.IAvailableModel) InvocationTargetException(java.lang.reflect.InvocationTargetException) WSGetRoutingRule(com.amalto.workbench.webservices.WSGetRoutingRule) WSGetViewPKs(com.amalto.workbench.webservices.WSGetViewPKs) WSMenu(com.amalto.workbench.webservices.WSMenu) WSDataModel(com.amalto.workbench.webservices.WSDataModel) WSRegexStoredProcedure(com.amalto.workbench.webservices.WSRegexStoredProcedure)

Aggregations

WSDataModel (com.amalto.workbench.webservices.WSDataModel)23 WSDataModelPK (com.amalto.workbench.webservices.WSDataModelPK)10 WSGetDataModel (com.amalto.workbench.webservices.WSGetDataModel)10 SAXParseException (org.xml.sax.SAXParseException)8 TMDMService (com.amalto.workbench.webservices.TMDMService)6 PartInitException (org.eclipse.ui.PartInitException)6 TreeObject (com.amalto.workbench.models.TreeObject)5 XSDSchema (org.eclipse.xsd.XSDSchema)5 ByteArrayInputStream (java.io.ByteArrayInputStream)4 IFile (org.eclipse.core.resources.IFile)4 CoreException (org.eclipse.core.runtime.CoreException)4 TreeParent (com.amalto.workbench.models.TreeParent)3 WSDataCluster (com.amalto.workbench.webservices.WSDataCluster)3 WSDataClusterPK (com.amalto.workbench.webservices.WSDataClusterPK)3 WSGetDataCluster (com.amalto.workbench.webservices.WSGetDataCluster)3 WSGetMenu (com.amalto.workbench.webservices.WSGetMenu)3 WSGetRoutingRule (com.amalto.workbench.webservices.WSGetRoutingRule)3 WSGetStoredProcedure (com.amalto.workbench.webservices.WSGetStoredProcedure)3 WSGetTransformerV2 (com.amalto.workbench.webservices.WSGetTransformerV2)3 WSGetView (com.amalto.workbench.webservices.WSGetView)3