Download
Getting Started
Members
Projects
Community
Marketplace
Events
Planet Eclipse
Newsletter
Videos
Participate
Report a Bug
Forums
Mailing Lists
Wiki
IRC
How to Contribute
Working Groups
Automotive
Internet of Things
LocationTech
Long-Term Support
PolarSys
Science
OpenMDM
More
Community
Marketplace
Events
Planet Eclipse
Newsletter
Videos
Participate
Report a Bug
Forums
Mailing Lists
Wiki
IRC
How to Contribute
Working Groups
Automotive
Internet of Things
LocationTech
Long-Term Support
PolarSys
Science
OpenMDM
Toggle navigation
Bugzilla – Attachment 55945 Details for
Bug 167600
WSDM Tooling: No validation, When Creating Duplicate Capability,MRT and DD files (when it is Case-insensitive)
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Requests
|
Help
|
Log In
[x]
|
Terms of Use
|
Copyright Agent
Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read
this important communication.
[patch]
Patch for this issue
patch.txt (text/plain), 12.06 KB, created by
Saurabh Dravid
on 2006-12-20 04:26:38 EST
(
hide
)
Description:
Patch for this issue
Filename:
MIME Type:
Creator:
Saurabh Dravid
Created:
2006-12-20 04:26:38 EST
Size:
12.06 KB
patch
obsolete
>### Eclipse Workspace Patch 1.0 >#P org.eclipse.tptp.wsdm.tooling.validation >Index: src/org/eclipse/tptp/wsdm/tooling/nls/messages/capability/internal/messages.properties >=================================================================== >RCS file: /cvsroot/tptp/monitoring/org.eclipse.tptp.wsdm.tooling.validation/src/org/eclipse/tptp/wsdm/tooling/nls/messages/capability/internal/messages.properties,v >retrieving revision 1.10 >diff -u -r1.10 messages.properties >--- src/org/eclipse/tptp/wsdm/tooling/nls/messages/capability/internal/messages.properties 19 Dec 2006 14:23:42 -0000 1.10 >+++ src/org/eclipse/tptp/wsdm/tooling/nls/messages/capability/internal/messages.properties 20 Dec 2006 08:44:45 -0000 >@@ -53,6 +53,7 @@ > FILE_EXT_MUST_BE_CAP = File extension must be "{0}" > FILE_ALREADY_EXISTS = File already exists > INVALID_FILE_NAME = Invalid file name >+DUPLICATE_CAPABILITY = Duplicate capability : {0} > > CAP_FILES = Capability files > CAP_FILES_WIZ_PAGE_DESCRIPTION = This wizard will create following different files to represent capability. >Index: src/org/eclipse/tptp/wsdm/tooling/nls/messages/capability/internal/Messages.java >=================================================================== >RCS file: /cvsroot/tptp/monitoring/org.eclipse.tptp.wsdm.tooling.validation/src/org/eclipse/tptp/wsdm/tooling/nls/messages/capability/internal/Messages.java,v >retrieving revision 1.7 >diff -u -r1.7 Messages.java >--- src/org/eclipse/tptp/wsdm/tooling/nls/messages/capability/internal/Messages.java 19 Dec 2006 14:23:42 -0000 1.7 >+++ src/org/eclipse/tptp/wsdm/tooling/nls/messages/capability/internal/Messages.java 20 Dec 2006 08:44:45 -0000 >@@ -61,6 +61,7 @@ > public static String FILE_EXT_MUST_BE_CAP; > public static String FILE_ALREADY_EXISTS; > public static String INVALID_FILE_NAME; >+ public static String DUPLICATE_CAPABILITY; > > public static String SELECT_CAPABILITY_IMPORTER; > public static String CAPABILITY_IMPORTERS; >Index: src/org/eclipse/tptp/wsdm/tooling/validation/capability/internal/CapabilityWSDLValidator.java >=================================================================== >RCS file: /cvsroot/tptp/monitoring/org.eclipse.tptp.wsdm.tooling.validation/src/org/eclipse/tptp/wsdm/tooling/validation/capability/internal/CapabilityWSDLValidator.java,v >retrieving revision 1.6 >diff -u -r1.6 CapabilityWSDLValidator.java >--- src/org/eclipse/tptp/wsdm/tooling/validation/capability/internal/CapabilityWSDLValidator.java 16 Oct 2006 22:15:46 -0000 1.6 >+++ src/org/eclipse/tptp/wsdm/tooling/validation/capability/internal/CapabilityWSDLValidator.java 20 Dec 2006 08:44:46 -0000 >@@ -162,20 +162,46 @@ > private void performExtraValidation(Definition definition) > { > String name = definition.getQName().getLocalPart(); >- String namespace = definition.getQName().getNamespaceURI(); >+ String namespace = definition.getTargetNamespace(); >+ >+ // Validate capability name > if (name == null || name.equals("")) > { > IValidationMessage message = ValidationUtils > .createNewErrorMessage(INVALID_CAPABILITY_NAME_MESSAGE); > _consolidatedReport.addValidationMessage(message); > } >+ >+ // Validate capability namespace > if (!Validation.isNamespace(namespace)) > { > IValidationMessage message = ValidationUtils > .createNewErrorMessage(INVALID_CAPABILITY_NAMESPACE_MESSAGE); > _consolidatedReport.addValidationMessage(message); > } >- >+ >+ // Validate Duplicate capability >+ // NOTE : Fix for Bug 167600 "No validation, When Creating Duplicate Capability" >+ // http://bugs.eclipse.org/bugs/show_bug.cgi?id=167600 >+ try { >+ Map capabilitiesMap = CapUtils.getAllCapabilitiesMap(); >+ Object value = capabilitiesMap.get(namespace); >+ if(value!=null){ >+ List list = (List) value; >+ if(list.size()>1){ >+ IValidationMessage message = ValidationUtils >+ .createNewErrorMessage(Messages.bind(Messages.DUPLICATE_CAPABILITY, name)); >+ _consolidatedReport.addValidationMessage(message); >+ } >+ } >+ } catch (Exception e) { >+ IValidationMessage message = ValidationUtils >+ .createNewErrorMessage(e.getMessage()); >+ _consolidatedReport.addValidationMessage(message); >+ return; >+ } >+ >+ // Validate capability port type > PortType pt = WsdlUtils.getPortType(definition); > if (pt == null) > { >@@ -186,6 +212,8 @@ > } > > Map map = WsdlUtils.getMetadataFromPortType(definition); >+ >+ // Check for Resource property element > String resourceProperties = (String) map > .get(WsdlUtils.RESOURCE_PROPERTIES_ELEMENT_KEY); > if (resourceProperties == null || resourceProperties.equals("")) >@@ -195,6 +223,7 @@ > _consolidatedReport.addValidationMessage(message); > } > >+ // Check for Metadescriptor element > String metadataDescriptorLocation = (String) map > .get(WsdlUtils.METADATA_DESCRIPTOR_LOCATION_KEY); > if (metadataDescriptorLocation == null >Index: src/org/eclipse/tptp/wsdm/tooling/util/internal/CapUtils.java >=================================================================== >RCS file: /cvsroot/tptp/monitoring/org.eclipse.tptp.wsdm.tooling.validation/src/org/eclipse/tptp/wsdm/tooling/util/internal/CapUtils.java,v >retrieving revision 1.3 >diff -u -r1.3 CapUtils.java >--- src/org/eclipse/tptp/wsdm/tooling/util/internal/CapUtils.java 19 Sep 2006 17:24:15 -0000 1.3 >+++ src/org/eclipse/tptp/wsdm/tooling/util/internal/CapUtils.java 20 Dec 2006 08:44:46 -0000 >@@ -16,12 +16,17 @@ > import java.io.StringWriter; > import java.util.ArrayList; > import java.util.Arrays; >+import java.util.HashMap; > import java.util.LinkedList; > import java.util.List; >+import java.util.Map; > > import org.apache.muse.util.xml.XmlUtils; > import org.apache.xml.serialize.OutputFormat; > import org.apache.xml.serialize.XMLSerializer; >+import org.eclipse.core.resources.IFile; >+import org.eclipse.core.resources.IWorkspaceRoot; >+import org.eclipse.core.resources.ResourcesPlugin; > import org.eclipse.emf.common.util.EList; > import org.eclipse.osgi.util.NLS; > import org.eclipse.tptp.wsdm.tooling.model.capabilities.Capability; >@@ -62,6 +67,10 @@ > "static", "void", "class", "finally", "long", "strictfp", > "volatile", "const", "float", "native", "super", "while", "true", > "false", "null" }); >+ >+ // This map will contain Capability URI as key and List of Capability WSDL Definition as value >+ // all of which have the same capability uri >+ private static Map standardCapabilityMap = null; > > /** > * This method will retun the root topic , provided any child topic or >@@ -498,4 +507,69 @@ > } > return (Element[]) result.toArray(new Element[result.size()]); > } >+ >+ /** >+ * Returns the Map of All capabilites available (Standarad+Workspace). >+ * Key will be Capability URI and Value will be List of Capability WSDL Definition >+ * which maps to same Capability URI. >+ * @throws Exception >+ */ >+ public static Map getAllCapabilitiesMap() throws Exception{ >+ if(standardCapabilityMap == null){ >+ standardCapabilityMap = new HashMap(); >+ // Get All ManagementCapabilities >+ Definition[] caps = (Definition[]) MrtUtils.getManagementCapabilities().toArray(new Definition[0]); >+ poplulateCapabilityMap(standardCapabilityMap, caps); >+ // Get All ManagementRelatedCapabilities >+ caps = (Definition[]) MrtUtils.getManagementRelatedCapabilities().toArray(new Definition[0]); >+ poplulateCapabilityMap(standardCapabilityMap, caps); >+ // Get All ResourcePropertyCapabilities >+ caps = (Definition[]) MrtUtils.getResourcePropertyCapabilities().toArray(new Definition[0]); >+ poplulateCapabilityMap(standardCapabilityMap, caps); >+ // Get All ResourceLifetimeCapabilities >+ caps = (Definition[]) MrtUtils.getResourceLifetimeCapabilities().toArray(new Definition[0]); >+ poplulateCapabilityMap(standardCapabilityMap, caps); >+ } >+ Map allCapabilities = new HashMap(); >+ allCapabilities.putAll(standardCapabilityMap); >+ // Get All WorkspaceCapabilities >+ Definition[] workspaceCapabilities = getAllWorkspaceCapabilities(); >+ poplulateCapabilityMap(allCapabilities, workspaceCapabilities); >+ return allCapabilities; >+ } >+ >+ private static void poplulateCapabilityMap(Map map, Definition[] capabilities){ >+ for(int i=0;i<capabilities.length;i++){ >+ String key = capabilities[i].getNamespace("capabilityURI"); >+ if(key == null) >+ key = capabilities[i].getTargetNamespace(); >+ Object value = map.get(key); >+ if(value == null){ >+ List list = new LinkedList(); >+ list.add(capabilities[i]); >+ map.put(key, list); >+ } >+ else{ >+ List list = (List) value; >+ list.add(capabilities[i]); >+ } >+ } >+ } >+ >+ >+ /** >+ * Returns all the Workspace capabilities. >+ */ >+ public static Definition[] getAllWorkspaceCapabilities() throws Exception{ >+ IWorkspaceRoot root = ResourcesPlugin.getWorkspace().getRoot(); >+ List allWSDLs = new LinkedList(); >+ List wsdls = EclipseUtils.getResourcesOfExtension(root, "mcap"); >+ for (int i=0;i<wsdls.size();i++) { >+ IFile wsdlFile = (IFile)wsdls.get(i); >+ Definition wsdlDef = WsdlUtils.getWSDLDefinition(wsdlFile); >+ if(wsdlDef!=null) >+ allWSDLs.add(wsdlDef); >+ } >+ return (Definition[]) allWSDLs.toArray(new Definition[allWSDLs.size()]); >+ } > } >#P org.eclipse.tptp.wsdm.tooling.editor.capability >Index: src/org/eclipse/tptp/wsdm/tooling/wizard/capability/internal/NewCapabilityWizardPage.java >=================================================================== >RCS file: /cvsroot/tptp/monitoring/org.eclipse.tptp.wsdm.tooling.editor.capability/src/org/eclipse/tptp/wsdm/tooling/wizard/capability/internal/NewCapabilityWizardPage.java,v >retrieving revision 1.2 >diff -u -r1.2 NewCapabilityWizardPage.java >--- src/org/eclipse/tptp/wsdm/tooling/wizard/capability/internal/NewCapabilityWizardPage.java 13 Sep 2006 12:03:41 -0000 1.2 >+++ src/org/eclipse/tptp/wsdm/tooling/wizard/capability/internal/NewCapabilityWizardPage.java 20 Dec 2006 08:44:49 -0000 >@@ -12,13 +12,14 @@ > > package org.eclipse.tptp.wsdm.tooling.wizard.capability.internal; > >+import java.util.Map; >+ > import org.eclipse.core.resources.IContainer; > import org.eclipse.core.resources.IResource; > import org.eclipse.core.resources.ResourcesPlugin; > import org.eclipse.core.runtime.Path; > import org.eclipse.jface.viewers.ISelection; > import org.eclipse.jface.viewers.IStructuredSelection; >-import org.eclipse.jface.wizard.IWizardPage; > import org.eclipse.jface.wizard.WizardPage; > import org.eclipse.osgi.util.NLS; > import org.eclipse.swt.SWT; >@@ -36,6 +37,7 @@ > import org.eclipse.tptp.wsdm.tooling.util.internal.CapUtils; > import org.eclipse.tptp.wsdm.tooling.util.internal.MrtUtils; > import org.eclipse.tptp.wsdm.tooling.util.internal.Validation; >+import org.eclipse.tptp.wsdm.tooling.util.internal.WsdmToolingLog; > import org.eclipse.ui.dialogs.ContainerSelectionDialog; > > /** >@@ -60,6 +62,8 @@ > private NewCapabilityWizard _wizard; > > private String _oldCapname; >+ >+ private Map _allCapabilitiesMap; > > /** > * Creates new object of this class. >@@ -173,6 +177,12 @@ > _qNameWgt.getNamespaceText().setText(nsDefault + getFileName()); > > _oldCapname = getFileName(); >+ >+ try { >+ _allCapabilitiesMap = CapUtils.getAllCapabilitiesMap(); >+ } catch (Exception e) { >+ WsdmToolingLog.logError(e.getMessage(), e); >+ } > } > > /** >@@ -203,7 +213,7 @@ > { > String prefix = getPrefix(); > String name = getCapabilityName(); >- String ns = getNamespace(); >+ final String ns = getNamespace(); > String container = getContainerName(); > String fileName = getTargetFileName(); > >@@ -289,7 +299,16 @@ > updateStatus(Messages.INVALID_FILE_NAME); > return; > } >- >+ >+ // NOTE : Fix for Bug 167600 "No validation, When Creating Duplicate Capability" >+ // http://bugs.eclipse.org/bugs/show_bug.cgi?id=167600 >+ if(_allCapabilitiesMap!=null){ >+ if(_allCapabilitiesMap.get(ns)!=null){ >+ updateStatus(Messages.bind(Messages.DUPLICATE_CAPABILITY, ns)); >+ return; >+ } >+ } >+ > updateStatus(null); > } >
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
Attachments on
bug 167600
:
55945
|
58638