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);
}
}
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());
}
}
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;
}
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());
}
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);
}
}
Aggregations