[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