[295348] [validation] Definition level extensibility elements are not validated
diff --git a/bundles/org.eclipse.wst.wsdl.validation/META-INF/MANIFEST.MF b/bundles/org.eclipse.wst.wsdl.validation/META-INF/MANIFEST.MF
index ef3ad14..cfbd48f 100644
--- a/bundles/org.eclipse.wst.wsdl.validation/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.wst.wsdl.validation/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@
Bundle-ManifestVersion: 2
Bundle-Name: %_PLUGIN_NAME
Bundle-SymbolicName: org.eclipse.wst.wsdl.validation; singleton:=true
-Bundle-Version: 1.1.401.qualifier
+Bundle-Version: 1.1.402.qualifier
Bundle-Activator: org.eclipse.wst.wsdl.validation.internal.eclipse.ValidateWSDLPlugin
Bundle-Vendor: %_PROVIDER_NAME
Bundle-Localization: plugin
diff --git a/bundles/org.eclipse.wst.wsdl.validation/src/org/eclipse/wst/wsdl/validation/internal/wsdl11/WSDL11BasicValidator.java b/bundles/org.eclipse.wst.wsdl.validation/src/org/eclipse/wst/wsdl/validation/internal/wsdl11/WSDL11BasicValidator.java
index f99b09f..fb06c57 100644
--- a/bundles/org.eclipse.wst.wsdl.validation/src/org/eclipse/wst/wsdl/validation/internal/wsdl11/WSDL11BasicValidator.java
+++ b/bundles/org.eclipse.wst.wsdl.validation/src/org/eclipse/wst/wsdl/validation/internal/wsdl11/WSDL11BasicValidator.java
@@ -102,15 +102,13 @@
*/
public void validate(Object element, List parents, IWSDL11ValidationInfo valInfo)
{
- //this.validatorcontroller = validatorcontroller;
- //setDefaultResourceBundleIfNeeded(validatorcontroller);
Definition wsdlDefinition = (Definition)element;
validateTypes(wsdlDefinition, valInfo);
validateServices(wsdlDefinition, valInfo);
validateBindings(wsdlDefinition, valInfo);
validatePortTypes(wsdlDefinition, valInfo);
validateMessages(wsdlDefinition, valInfo);
-
+ validateExtensibilityElementList(parents, wsdlDefinition.getExtensibilityElements(), valInfo);
}
/**
diff --git a/tests/org.eclipse.wst.wsdl.validation.tests/.classpath b/tests/org.eclipse.wst.wsdl.validation.tests/.classpath
index 099908e..7d6d00f 100644
--- a/tests/org.eclipse.wst.wsdl.validation.tests/.classpath
+++ b/tests/org.eclipse.wst.wsdl.validation.tests/.classpath
@@ -4,6 +4,7 @@
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.4">
<accessrules>
<accessrule kind="accessible" pattern="org/apache/xerces/**"/>
+ <accessrule kind="accessible" pattern="javax/xml/namespace/QName"/>
</accessrules>
</classpathentry>
<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins">
diff --git a/tests/org.eclipse.wst.wsdl.validation.tests/META-INF/MANIFEST.MF b/tests/org.eclipse.wst.wsdl.validation.tests/META-INF/MANIFEST.MF
index 1772cb4..99322cf 100644
--- a/tests/org.eclipse.wst.wsdl.validation.tests/META-INF/MANIFEST.MF
+++ b/tests/org.eclipse.wst.wsdl.validation.tests/META-INF/MANIFEST.MF
@@ -1,7 +1,7 @@
Manifest-Version: 1.0
Bundle-ManifestVersion: 2
Bundle-Name: %_PLUGIN_NAME
-Bundle-SymbolicName: org.eclipse.wst.wsdl.validation.tests
+Bundle-SymbolicName: org.eclipse.wst.wsdl.validation.tests;singleton:=true
Bundle-Version: 1.0.204
Bundle-ClassPath: wsdlvalidatetests.jar
Bundle-Activator: org.eclipse.wst.wsdl.validation.tests.internal.WSDLValidatorTestsPlugin
diff --git a/tests/org.eclipse.wst.wsdl.validation.tests/build.properties b/tests/org.eclipse.wst.wsdl.validation.tests/build.properties
index 1c9a689..b719df6 100644
--- a/tests/org.eclipse.wst.wsdl.validation.tests/build.properties
+++ b/tests/org.eclipse.wst.wsdl.validation.tests/build.properties
@@ -15,5 +15,6 @@
test.xml,\
META-INF/,\
about.html,\
- plugin.properties
+ plugin.properties,\
+ plugin.xml
src.includes = build.properties
diff --git a/tests/org.eclipse.wst.wsdl.validation.tests/plugin.xml b/tests/org.eclipse.wst.wsdl.validation.tests/plugin.xml
new file mode 100644
index 0000000..e4e7c6a
--- /dev/null
+++ b/tests/org.eclipse.wst.wsdl.validation.tests/plugin.xml
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?eclipse version="3.4"?>
+<plugin>
+ <extension
+ point="org.eclipse.wst.wsdl.validation.wsdl11validator">
+ <validator
+ class="org.eclipse.wst.wsdl.validation.tests.internal.SimpleExtensionsValidator"
+ namespace="http://org.eclipse.wst.wsdl.validation.tests/Extensions">
+ </validator>
+ </extension>
+ <extension
+ point="org.eclipse.wst.xml.core.catalogContributions">
+ <catalogContribution>
+ <uri
+ name="http://org.eclipse.wst.wsdl.validation.tests/Extensions"
+ uri="testresources/samples/WSDL/ExtensibleElements/Extensions.xsd">
+ </uri>
+ </catalogContribution>
+ </extension>
+</plugin>
diff --git a/tests/org.eclipse.wst.wsdl.validation.tests/src/org/eclipse/wst/wsdl/validation/tests/internal/SimpleExtensionsValidator.java b/tests/org.eclipse.wst.wsdl.validation.tests/src/org/eclipse/wst/wsdl/validation/tests/internal/SimpleExtensionsValidator.java
new file mode 100644
index 0000000..7ebbeb0
--- /dev/null
+++ b/tests/org.eclipse.wst.wsdl.validation.tests/src/org/eclipse/wst/wsdl/validation/tests/internal/SimpleExtensionsValidator.java
@@ -0,0 +1,48 @@
+/*******************************************************************************
+ * Copyright (c) 2009 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+
+package org.eclipse.wst.wsdl.validation.tests.internal;
+
+
+import java.util.List;
+
+import javax.wsdl.extensions.ExtensibilityElement;
+import javax.xml.namespace.QName;
+
+import org.eclipse.wst.wsdl.validation.internal.wsdl11.IWSDL11ValidationInfo;
+import org.eclipse.wst.wsdl.validation.internal.wsdl11.IWSDL11Validator;
+
+
+/**
+ * An extensions validator used to test that a registered extensions
+ * validator is called by the main WSDL 1.1 validator when validating
+ * definitions level extensibility elements.
+ */
+public class SimpleExtensionsValidator implements IWSDL11Validator
+{
+ public static final String NS_URI = "http://org.eclipse.wst.wsdl.validation.tests/Extensions"; //$NON-NLS-1$
+
+ public void validate(Object element, List parents, IWSDL11ValidationInfo valInfo)
+ {
+ ExtensibilityElement extensibilityElement = (ExtensibilityElement)element;
+ QName elementType = extensibilityElement.getElementType();
+ String namespaceURI = elementType.getNamespaceURI();
+
+ if (NS_URI.equals(namespaceURI))
+ {
+ valInfo.addWarning("The test extensions validator got called.", element); //$NON-NLS-1$
+ }
+ else
+ {
+ valInfo.addError("Bad extensibility element namespace.", element); //$NON-NLS-1$
+ }
+ }
+}
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.wsdl.validation.tests/src/org/eclipse/wst/wsdl/validation/tests/internal/WSDLTest.java b/tests/org.eclipse.wst.wsdl.validation.tests/src/org/eclipse/wst/wsdl/validation/tests/internal/WSDLTest.java
index de9e7e2..c230ba6 100644
--- a/tests/org.eclipse.wst.wsdl.validation.tests/src/org/eclipse/wst/wsdl/validation/tests/internal/WSDLTest.java
+++ b/tests/org.eclipse.wst.wsdl.validation.tests/src/org/eclipse/wst/wsdl/validation/tests/internal/WSDLTest.java
@@ -677,4 +677,17 @@
runTest(testfile, loglocation, idealloglocation);
}
+
+ /**
+ * Test /WSDL/ExtensibleElements/ExtensibleDefinitions.wsdl
+ */
+ public void testExtensibleDefinitions()
+ {
+ String testname = "ExtensibleDefinitions";
+ String testfile = FILE_PROTOCOL + PLUGIN_ABSOLUTE_PATH + SAMPLES_DIR + WSDL_DIR + "ExtensibleElements/" + testname + ".wsdl";
+ String loglocation = PLUGIN_ABSOLUTE_PATH + GENERATED_RESULTS_DIR + WSDL_DIR + "ExtensibleElements/" + testname + ".wsdl-log";
+ String idealloglocation = PLUGIN_ABSOLUTE_PATH + IDEAL_RESULTS_DIR + WSDL_DIR + "ExtensibleElements/" + testname + ".wsdl-log";
+
+ runTest(testfile, loglocation, idealloglocation);
+ }
}
diff --git a/tests/org.eclipse.wst.wsdl.validation.tests/testresources/idealResults/WSDL/ExtensibleElements/ExtensibleDefinitions.wsdl-log b/tests/org.eclipse.wst.wsdl.validation.tests/testresources/idealResults/WSDL/ExtensibleElements/ExtensibleDefinitions.wsdl-log
new file mode 100644
index 0000000..e18e95f
--- /dev/null
+++ b/tests/org.eclipse.wst.wsdl.validation.tests/testresources/idealResults/WSDL/ExtensibleElements/ExtensibleDefinitions.wsdl-log
@@ -0,0 +1,8 @@
+number of errors : 0
+number of warnings : 1
+
+------------error list-------------------------------------------
+(none)
+------------warning list-----------------------------------------
+The test extensions validator got called. [8, 40]
+-----------------------------------------------------------------
diff --git a/tests/org.eclipse.wst.wsdl.validation.tests/testresources/samples/WSDL/ExtensibleElements/ExtensibleDefinitions.wsdl b/tests/org.eclipse.wst.wsdl.validation.tests/testresources/samples/WSDL/ExtensibleElements/ExtensibleDefinitions.wsdl
new file mode 100644
index 0000000..b6c2fed
--- /dev/null
+++ b/tests/org.eclipse.wst.wsdl.validation.tests/testresources/samples/WSDL/ExtensibleElements/ExtensibleDefinitions.wsdl
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<wsdl:definitions name="ExtensibleDefinitions"
+ targetNamespace="http://www.example.org/ExtensibleDefinitions/"
+ xmlns:tns="http://www.example.org/ExtensibleDefinitions/"
+ xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
+ xmlns:ext="http://org.eclipse.wst.wsdl.validation.tests/Extensions">
+ <wsdl:documentation>Testing the validation of definitions level extensibility elements.</wsdl:documentation>
+ <ext:testExtension testAttribute="10">test</ext:testExtension>
+</wsdl:definitions>
\ No newline at end of file
diff --git a/tests/org.eclipse.wst.wsdl.validation.tests/testresources/samples/WSDL/ExtensibleElements/Extensions.xsd b/tests/org.eclipse.wst.wsdl.validation.tests/testresources/samples/WSDL/ExtensibleElements/Extensions.xsd
new file mode 100644
index 0000000..3ec3794
--- /dev/null
+++ b/tests/org.eclipse.wst.wsdl.validation.tests/testresources/samples/WSDL/ExtensibleElements/Extensions.xsd
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+ targetNamespace="http://org.eclipse.wst.wsdl.validation.tests/Extensions"
+ xmlns:tns="http://org.eclipse.wst.wsdl.validation.tests/Extensions"
+ elementFormDefault="qualified">
+
+ <xsd:element name="testExtension">
+ <xsd:complexType>
+ <xsd:simpleContent>
+ <xsd:extension base="xsd:string" >
+ <xsd:attribute name="testAttribute" type="xsd:integer" />
+ </xsd:extension>
+ </xsd:simpleContent>
+ </xsd:complexType>
+ </xsd:element>
+</xsd:schema>
\ No newline at end of file